私はC++で書かれたDLLを持っています。このDLLの機能は、次のコードのようなものです。
C ++コード:
char _H *GetPalette() {
-------Functions body
-------Functions body
return pPaletteString;
}
ここで、C#コードのGetPalette()関数からパレット文字列を取得したいと思います。
その関数から文字列を取得するにはどうすればよいですか?私はこれをC#コードで試しました。しかし、正しい結果を得ることができませんでした。
C#コード:
[DllImport("cl.dll", EntryPoint = "GetPalette@0", 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);
このコードは正しく機能しません。いくつかのボディplzは私を助けることができます、どうすれば私のC ++ DLL関数から文字列値を取得できますか?
ありがとう
Shahriar