如题,我用C#调用MFC dll,将C#传入的内容显示在窗体上时乱码,求解!!
MFC工程师unicode编码,怀疑是编码问题,但是不知道怎么解,请高手指点!
=====================以下为代码部分==================================
DllImport int ShowDialog(char* ip,char* sn) //C#中调用的接口
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
COpalVideoDlg *ph = new COpalVideoDlg;
ph->Create(COpalVideoDlg::IDD);
ph->ShowWindow(SW_SHOW); //显示窗体
CString ipStr, snStr;
ipStr.Format(_T("%s"), ip);
snStr.Format(_T("%s"), sn);
//显示传入参数
ph->mSNEdt.SetWindowText(snStr); //乱码
ph->mIPIpc.SetAddress(htonl(inet_addr(CW2A(ipStr)))); //传入的ip显示后也不对
return 1;
}
直接在MFC赋值显示是OK的,如下:
CString ipStr = _T("192.168.1.99");
CString snStr = _T("111111111111");
不好意思 ,太忙了。
1、ShowDialog是MFC函数,C#中只是调用,实现很简单就是点击按钮调用,显示窗体
2、我MFC工程设置的就是 【使用Unicode字符集】
工程里的设置,表明内部是按照Unicode来处理的。但是你内部并没有使用Unicode的字符串来存储,会出问题的。char *不是unicode字符串。