C铅PInvokeを通じてc+関数のメモを呼び出した場合の例を詳しく説明します。


現在知っている状況で呼び出されたC/C++関数は、グローバル関数のみでクラスのメンバーを呼び出すことができません。
呼び出されたC関数はextern「C」を使用しなければならない。採用された導出関数名の生成規則と.NETが一致することを保証する。
関数呼び出しの約束は通常WINAPI、つまり__u ustdcal、.netで黙認するのも_u uです。stdcal
ネットはc++と同時にcdeclで約束を呼び出すことができます。可変パラメータの個数をサポートできます。
c関数は必ず__u u uを使用します。declspec(dlexport)プレフィックスをエクスポートします。
PInvoke asistantツールは、C铉とVBの導入を補助して声明を生成することができます。また、一般的な定数の列挙を見ることができます。
重荷重のc++関数を呼び出してエクスポートするかどうかはまだテストされていませんが、現在見つかった情報はまだ確認できません。
文字列はCの中のchar**w_だけに対応します。char*stlのstringがサポートされていません。
各種のポインタハンドルはC〓のIntPtr Ult Ptrを使って対応できます。
非ホストのCに文字列を送る場合は、変数によってMarksharl.StringToHGlobal Auto(csstr)を用いて、非ホストメモリにコピーされた文字列IntPtr文柄を得ることができ、IntPtr.ToInt 32()またはIntPtr.ToInt 64()方法でPInvok方式の音声明に送るC関数を呼び出すことができます。この文字列の非委託コピーは使い終わったら、C〓でMasharl.FreeHGlobalを使って釈放してください。
実例参照:
C USBメモリと非ホストメモリの間の変換の例を説明します。
https://www.jb51.net/article/168504.htm
C〓〓とC++と相互操作の実例は説明します。
https://www.jb51.net/article/168506.htm