char*赋值给CString后乱码
我用VC6写一个DLL,再用小程序测试,DLL中某函数返回char *类型字符串theStr。我欲将该字符串显示到界面上的文本框里。文本框的CString 变量名为m_msg。
DLL中该函数原型为:
GDS820S_MeasFreq(int gpibNo, int channelNo, char **theReadingStr)
///////////////////////////////////////////////////////////////////
//以下是测试例程片段
...
UpdateData(True);
...
char *theStr = (char *)malloc(sizeof(char)*100);
GDS820S_MeasFreq(8, 1, &theStr);
m_msg = theStr;
...
UpdateData(False);
//经跟踪,到m_msg = theStr这一步时,theStr里面有值,很正确,但是该句赋值完了,m_msg就乱码了,类似"!?||"这样。不知道是什么原因,我这个字符串theStr是从一个示波器里读取度数。是不是unicode与ANSI这方面的原因。望大侠们指点。