我正在尝试将以下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()在这种情况下是否是正确的函数?
答案 0 :(得分:0)
DllImportAttribute
仅将C风格的DLL导入CLI。
这意味着NfcReader.dll是一个标准的C / ++ DLL,你应该可以使用它,但是通常使用C / ++中的dll。我从未做过C / ++,但我认为LoadLibrary()
是一个很好的起点。