C#はcharポインタを返すC ++関数から文字列/文字値を取得します

c# c++ char-pointer marshalling
C#はcharポインタを返すC ++関数から文字列/文字値を取得します

C ++で記述されたDLLを持っています。 このDLLの機能は、次のコードのようなものです。

Cコード:

     char _H *GetPalette() {

            -------Functions body

            -------Functions body

            return pPaletteString;

      }

次に、C#コードのGetPalette()関数からパレット文字列を取得します。

その関数から文字列を取得するにはどうすればよいですか? これをC#コードで試しました。 しかし、正しい結果を得ることができませんでした。

C#コード:

    [DllImport("cl.dll", EntryPoint = "[email protected]", CallingConvention = CallingConvention.StdCall)]

    private static extern IntPtr libGetPalette();

    public IntPtr GetPalette()
    {
        return libGetPalette();
    }

最後に、このような文字列を取得したい

            IntPtr result;
            result = imgProcess.GetPallet();

            string pallet;
            pallet = Marshal.PtrToStringAnsi(result);
            MessageBox.Show(pallet);

このコードは正しく機能しません。 いくつかのボディプラザは私を助けることができますか、C ++ DLL関数から文字列値を取得するにはどうすればよいですか?

ありがとう

シャーリアー

  3  0


ベストアンサー

呼び出し規約は stdcall`であるとC#に伝えましたが、関数自体に

1


タイトルとURLをコピーしました