1

C#.netを使用して、.dllファイル内でこの関数を宣言して使用する方法:

DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer,
    UInt16* versionLengthBuffer);

前もって感謝します!

4

2 に答える 2

2

C#には文字列ポインタの概念がないため、string/intを使用できます。

基本的に自分で定義するには、少し違うことをする必要がありますが、互換性はありません。

public bool GetVersion (string versionBuffer, int versionLengthBuffer) 

既存のアイテムを使用している場合は、pInvokeで可能な署名のリストを確認してください。

于 2012-07-09T13:40:46.957 に答える
0

これは私が見つけた解決策です:

    [DllImport("DEMO.dll",
        SetLastError = true,
        CallingConvention = CallingConvention.Cdecl)]
    public extern static byte GetVersion(
        [MarshalAs(UnmanagedType.LPStr)] StringBuilder versionBuffer,
        [MarshalAs(UnmanagedType.LPWStr)] StringBuilder versionLengthBuffer);
于 2012-07-10T11:03:08.293 に答える