将dll导入C ++程序

时间:2013-02-05 22:06:18

标签: c++ dll c++-cli

我正在尝试将以下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()在这种情况下是否是正确的函数?

1 个答案:

答案 0 :(得分:0)

DllImportAttribute仅将C风格的DLL导入CLI。

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