我有一个用 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);
此代码无法正常工作。一些人可以帮助我,我怎样才能从我的 C++ DLL 函数中获取字符串值?
谢谢
沙赫里亚尔