vb.net pRO 2017 无法使用具有名为 'WriteOnly' 的函数(VB 保留字)的 DLL 进行构建



如何解决此问题?

我需要连接到来自 Inheco.com 的DLL(InhecoMTCdll.DLL(,该DLL在其API中公开函数名称"WriteOnly((",这是一个 VB.NET 保留字。
那么问题就是我的 VB.NET Windows 窗体应用程序在声明 API 时出现生成错误。

有没有办法解决这个问题? 我没有 DLL 的源代码。 我尝试了 JetBrains dotPeek 进行反编译,但看不到如何重新编译。

InhecoMTCdll的API.DLL

public int FindTheUniversalControl(

int ID);
public void WriteOnly(string msg);
public string ReadSync();

我在 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

如果用方括号将保留字括起来,则可以在 VB.Net 函数和变量名称中使用保留字。例如:

Public Shared Sub [WriteOnly](ByRef msg As Byte())

相关内容

  • 没有找到相关文章

最新更新