我試圖改寫以下VB代碼到C++進口和使用一個DLL文件:導入DLL到C++程序
<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()甚至是適當的函數嗎?
無論這可能工作的可能性...我不相信這是好的,甚至是理智的,從其他語言導入庫...這是計劃C++,你不在CLI上... – rubbyrubber
不管我在下面寫的答案如何,「如何將這段代碼片段從一種語言轉換爲另一種語言?」在SO上通常不受歡迎。他們的範圍非常有限。在未來嘗試寫出你的問題,以便讓更多的讀者受益。閱讀關於如何提問的FAQ。 –
在CLI上,您不需要這樣做,因爲CLI類在所有.NET語言中都工作(主要是)... – rubbyrubber