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

如题,我用C#调用MFCdll,将C#传入的内容显示在窗体上时乱码,求解!!MFC工程师unicode编码,怀疑是编码问题,但是不知道怎么解,请高手指点!========... 如题,我用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");
展开
 我来答
cooke1234
2015-08-01 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3577万
展开全部
应该是编码问题。编码问题需要C#和C++来配合工作才行。
你这里只贴出了C++的函数实现,请贴出C#中ShowDialog的函数定义。
另外,上述ShowDialog没有使用Unicode,如果是Unicode的话,参数不应该是char,而应该使用wchar 或者TCHAR。
追问

不好意思 ,太忙了。

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

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

追答
工程里的设置,表明内部是按照Unicode来处理的。但是你内部并没有使用Unicode的字符串来存储,会出问题的。char *不是unicode字符串。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式