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 に答える