C# vb.net pRO 2017无法使用名为';书面形式';哪个是VB保留字
我如何解决这个问题 我需要连接到一个DLL(InhecoMTCdll.DLL from Inheco.com),该DLL在其API中公开函数名“WriteOnly()”,这是一个VB.NET保留字。C# vb.net pRO 2017无法使用名为';书面形式';哪个是VB保留字,c#,.net,vb.net,dll,managed,C#,.net,Vb.net,Dll,Managed,我如何解决这个问题 我需要连接到一个DLL(InhecoMTCdll.DLL from Inheco.com),该DLL在其API中公开函数名“WriteOnly()”,这是一个VB.NET保留字。 问题是,当我声明API时,我的VB.NET windows窗体应用程序出现生成错误 有没有办法解决这个问题?我没有DLL的源代码。我尝试了JetBrains dotPeek进行反编译,但看不到如何重新编译 InhecoMTCdll.DLL的API 公共int FindTheUniversalCont
问题是,当我声明API时,我的VB.NET windows窗体应用程序出现生成错误 有没有办法解决这个问题?我没有DLL的源代码。我尝试了JetBrains dotPeek进行反编译,但看不到如何重新编译 InhecoMTCdll.DLL的API 公共int FindTheUniversalControl( 我在VB.NET Pro 2017 windows应用程序中声明API
Imports System.Runtime.InteropServices
Module Inheco_Thermoshake_interface
Public Class NativeMethods
' Function within DLL:
' Public int FindTheUniversalControl(int ID);
' which corresponds to VB.NET declaration:
<DllImport("InhecoMTCdll.dll")>
Public Shared Function FindTheUniversalControl(ByRef ID As Int32) As Int32
End Function
' Need to re-program DLL with Inheco_WriteOnly because WriteOnly is VB keyword.
' public void WriteOnly(string msg);
<DllImport("InhecoMTCdll.dll")>
Public Shared Sub WriteOnly(ByRef msg As Byte()) <<<<<<< BUILD ERROR: "KEYWORD IS NO VALID AS AN IDENTIFIER"
End Sub
' public string ReadSync();
<DllImport("InhecoMTCdll.dll")>
Public Shared Function ReadSync() As Byte()
End Function
End Class
End Module
导入System.Runtime.InteropServices
ECO_热交换_接口模块
公共类本地方法
'DLL中的函数:
'公共int FindTheUniversalControl(int ID);
'对应于VB.NET声明:
公共共享函数FindTheUniversalControl(ByRef ID为Int32)为Int32
端函数
'需要使用Inheco_WriteOnly重新编程DLL,因为WriteOnly是VB关键字。
'public void WriteOnly(字符串msg);
Public Shared Sub WriteOnly(ByRef msg As Byte())如果用方括号括起来,则可以在VB.Net中使用保留字作为函数和变量名。例如:
Public Shared Sub [WriteOnly](ByRef msg As Byte())
如果在VB.Net中用方括号括起来,则可以使用保留字作为函数名和变量名。例如:
Public Shared Sub [WriteOnly](ByRef msg As Byte())
你至少能正确格式化你的代码吗?使用DllImport
上的EntryPoint
说明符。EntryPoint必须与实际的DLL匹配,但不能与VB关键字冲突。然后方法名可以是合法的。Ben,你能举个例子说明如何正确格式化你的代码吗?使用EntryPDllImport
上的oint
说明符。EntryPoint必须与实际的DLL匹配,但不能与VB关键字冲突。然后方法名可以是合法的。Ben,你能举个例子吗?谢谢,Ben。我要到下周硬件返回实验室才能测试它。交叉手指…谢谢,Ben。我要到下周才能测试它硬件下周返回实验室。交叉手指。。。