程序开始是选了unicode库的对话框,
然后我刚才把它改成了多字节,
结果不能运行勒. 
调试到主窗口的.domodal()就return false,就直接自己调试结束了
求救! 

解决方案 »

  1.   


    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()
      

  2.   

    我之前也遇到类似的问题,后来没办法,只能在程序中写函数对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;
    }
    希望对你有帮助。