C# vb.net pRO 2017无法使用名为';书面形式';哪个是VB保留字

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

我如何解决这个问题

我需要连接到一个DLL(InhecoMTCdll.DLL from Inheco.com),该DLL在其API中公开函数名“WriteOnly()”,这是一个VB.NET保留字。
问题是,当我声明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,你能举个例子说明如何正确格式化你的代码吗?使用
EntryP
DllImport
上的oint
说明符。EntryPoint必须与实际的DLL匹配,但不能与VB关键字冲突。然后方法名可以是合法的。Ben,你能举个例子吗?谢谢,Ben。我要到下周硬件返回实验室才能测试它。交叉手指…谢谢,Ben。我要到下周才能测试它硬件下周返回实验室。交叉手指。。。