【发布时间】:2015-10-21 06:14:39
【问题描述】:
使用 SendMessageW 函数,我将 c# 字符串作为参数传递给 c++ 函数。我在 C++ 中对 CString 进行类型转换,但它的值为空。请检查以下代码并提供解决方案
-----------------------c#代码------
public unsafe IntPtr Testing()
{
string string_aux = "Stringtochange";
void* pt = Marshal.StringToBSTR(string_aux).ToPointer();
IntPtr ab = new IntPtr(pt);
return ab;
}
public void GetValue()
{
SendMessageW(utilityHandle1, TVM_GETITEMHEIGHT, handle,Testing());
}
--------- C++代码--------------
CString *st = (CString*)lParam;
MessageBox(NULL,*st,L"stringvalue",NULL);
这里 *st 值是空的。
【问题讨论】: