vs2008 编码改成多字节字符集无法运行 程序开始是选了unicode库的对话框,然后我刚才把它改成了多字节,结果不能运行勒. 调试到主窗口的.domodal()就return false,就直接自己调试结束了求救! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CIPToolDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE;我用unicode的时候是可以正常运行的 但是改成多字节就不行了 调试到END_MESSAGE_MAP() 就跳回 没有oninitdialog() 我之前也遇到类似的问题,后来没办法,只能在程序中写函数对Unicode和AscII进行转化:bool CCallbayConferenceSystemDlg::WideToAsc(wchar_t *wp,char *p){ bool ret = false; if(wp != NULL) { int count = WideCharToMultiByte(CP_ACP,0,wp,-1,0,0,NULL,NULL); if(count > 0) { WideCharToMultiByte(CP_ACP, 0, wp, -1, p, count + 1 , NULL, NULL); p[count] = '\0'; ret = true; } } return ret;}bool CCallbayConferenceSystemDlg::AscToWide(char *p,wchar_t *wp){ bool ret = false; if(p != NULL) { int count = MultiByteToWideChar(CP_ACP, 0, p , strlen(p), NULL , 0); if(count > 0) { MultiByteToWideChar(CP_ACP, 0, p , strlen(p), wp , count+1); wp[count] = '\0'; ret = true; } } return ret;}希望对你有帮助。 用MFC自身的网络类传输文件时界面卡住,问题到底出在哪里? 关于mshtml在多线程中的使用问题 Recordset调用出错 这里用WTL的人多吗 请问如果实现远程桌面功能 在CListCtrl控件中如何知道我当前选择的是哪一项? 如何快速给数组赋0值???????? 到处看到C Runtiems这个东西,请大家给我解释一下什么是C Runtiems,它有什么用处? 我下了msdn2003他的后缀是.img的!!怎么看啊!! 各位老大,为什么我的dialog一回车就退出,我已经将OK、CANCEL按钮都删除了呀! 对话框大小改变触发的是哪个事件? 双缓冲都不够用,能不能实现三缓冲绘图呢?
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); // 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CIPToolDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用
// “确定”来关闭对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用
// “取消”来关闭对话框的代码
} // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
我用unicode的时候是可以正常运行的 但是改成多字节就不行了 调试到
END_MESSAGE_MAP() 就跳回 没有oninitdialog()
bool CCallbayConferenceSystemDlg::WideToAsc(wchar_t *wp,char *p)
{
bool ret = false;
if(wp != NULL)
{
int count = WideCharToMultiByte(CP_ACP,0,wp,-1,0,0,NULL,NULL); if(count > 0)
{
WideCharToMultiByte(CP_ACP, 0, wp, -1, p, count + 1 , NULL, NULL);
p[count] = '\0';
ret = true;
}
} return ret;
}bool CCallbayConferenceSystemDlg::AscToWide(char *p,wchar_t *wp)
{ bool ret = false;
if(p != NULL)
{
int count = MultiByteToWideChar(CP_ACP, 0, p , strlen(p), NULL , 0); if(count > 0)
{
MultiByteToWideChar(CP_ACP, 0, p , strlen(p), wp , count+1);
wp[count] = '\0';
ret = true;
}
} return ret;
}
希望对你有帮助。