C#.netを使用して、.dllファイル内でこの関数を宣言して使用する方法:
DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer,
UInt16* versionLengthBuffer);
前もって感謝します!
C#には文字列ポインタの概念がないため、string/intを使用できます。
基本的に自分で定義するには、少し違うことをする必要がありますが、互換性はありません。
public bool GetVersion (string versionBuffer, int versionLengthBuffer)
既存のアイテムを使用している場合は、pInvokeで可能な署名のリストを確認してください。
これは私が見つけた解決策です:
[DllImport("DEMO.dll",
SetLastError = true,
CallingConvention = CallingConvention.Cdecl)]
public extern static byte GetVersion(
[MarshalAs(UnmanagedType.LPStr)] StringBuilder versionBuffer,
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder versionLengthBuffer);