1

我正在尝试将以下 VB 代码重写为 C++ 以导入和使用 DLL 文件:

    <DllImport("NfcReader.dll", EntryPoint:="CommOpen")> _
Public Function CommOpen(ByRef hCom As IntPtr, ByVal com_port As String) As Short
End Function

我尝试使用以下代码:

#using <mscorlib.dll>
using namespace System::Runtime::InteropServices;

namespace sensor{ 
[DllImport("NfcReader.dll", EntryPoint = "CommOpen")]
short int CommOpen(intptr_t hCom, std::string com_port);
}

但我不断收到错误 system.accessviolation 因为显然我的函数参数不能是字符串。
有人可以帮我解决这个问题吗?我不知道 DllImport() 是否是在这种情况下使用的正确函数?

4

1 回答 1

0

唯一将DllImportAttributeC 风格的 DLL 导入 CLI。

这意味着 NfcReader.dll 是一个标准的 C/++ dll,您应该能够使用它,但是通常在 C/++ 中使用 dll。我从未做过 C/++,但我认为LoadLibrary()这将是一个很好的起点。

于 2013-02-06T01:14:03.510 回答