C#调用MFC dll,把C#传入的内容显示在VC窗体上乱码

如题,我用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");

应该是编码问题。编码问题需要C#和C++来配合工作才行。
你这里只贴出了C++的函数实现,请贴出C#中ShowDialog的函数定义。
另外,上述ShowDialog没有使用Unicode,如果是Unicode的话,参数不应该是char,而应该使用wchar 或者TCHAR。追问

不好意思 ,太忙了。

1、ShowDialog是MFC函数,C#中只是调用,实现很简单就是点击按钮调用,显示窗体

2、我MFC工程设置的就是 【使用Unicode字符集】

追答

工程里的设置,表明内部是按照Unicode来处理的。但是你内部并没有使用Unicode的字符串来存储,会出问题的。char *不是unicode字符串。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答