我在对话框程序的LRESULT CMainDlg::OnOK(...)函数里  把CloseDialog();给注释掉   然后调用了一个自己类的函数 ,就出错了   停在if(!PreTranslateMessage(&m_msg)){}   这里把调用的函数删掉,没有问题    应该是这个函数的问题    但是我调试了 ,这个函数里就只是读取配置文件,把数据保存到成员变量中这是什么原因

解决方案 »

  1.   

    你别在CMainDlg::OnOK(...)里面处理你的函数如果你想用一个按钮实现你的功能,新建一个按钮就可以啦,系统生产的代码都有一定的路径的
    对话框程序一上来如果不用“确定”和“取消”功能,就把那两个按钮删了
      

  2.   

    我试过,把OK按钮给删了,重新添加按钮,在这个按钮响应事件中处理函数,还是会这样 提示的是0xc0000005:读取位置 0xcccccccc时发生访问冲突内存溢出了???
      

  3.   

    void CMainDlg::GetSystemSetting()
    {
    TCHAR szPath[MAX_PATH+1]; GetModuleFileName(_Module.GetModuleInstance(),szPath,MAX_PATH); *(_tcsrchr(szPath,_T('\\'))) = 0; char chPath[MAX_PATH+1];
    int i = sprintf(chPath,"%s",szPath);
    sprintf(chPath+i,"%s","\\UserSysSetting"); int j = sprintf(chPath,"%s",chPath);
    sprintf(chPath+j,"\\%s\\%s",m_LoginInfo.szAccount,"SystemConfig.ini");
    //检查用户的系统配置文件是否存在,如果不存在,使用默认default
    WIN32_FIND_DATA findFileData;
    if(INVALID_HANDLE_VALUE == FindFirstFile(chPath,&findFileData))
    {
    char chPathDefault[MAX_PATH+1];
    int i = sprintf(chPathDefault,"%s",szPath);
    sprintf(chPathDefault+i,"%s","\\UserSysSetting\\default\\SystemConfig.ini"); //创建用户系统配置的文件目录
    *(_tcsrchr(chPath,_T('\\'))) = 0;
    CreateDirectory(chPath,NULL);

    //创建配置文件
    int k = sprintf(chPath,"%s",chPath);
    sprintf(chPath+k,"%s","\\SystemConfig.ini");
    CreateFile(chPath,0,FILE_SHARE_DELETE|FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
            
    CopyFile(chPathDefault,chPath,FALSE);
    } //网络设置信息
    GetPrivateProfileString("Net","ServerIP","",m_sysInfo.szServerIP,MAX_ADDRESS,chPath);
    m_sysInfo.uiLocalPort = GetPrivateProfileInt("Net","LocalPort",0,chPath);
    //录音设置信息
    GetPrivateProfileString("Record","FilePath","c:\\RecFile",m_sysInfo.szRecordFilePath,MAX_FILEPATH,chPath);
    m_sysInfo.byAutoRecTalk = GetPrivateProfileInt("Record","AutoRecTalk",0,chPath);
    m_sysInfo.byAutoRecMeet = GetPrivateProfileInt("Record","AutoRecMeet",0,chPath);
    //直通设置信息
    TCHAR  szStr[MAX_CALLLENGTH+1]; GetPrivateProfileString("JustCall","1","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[0].uiNumber = 1;
    memcpy(m_sysInfo.justcall[0].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[0].szTargetID);
    m_sysInfo.justcall[0].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","2","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[1].uiNumber = 2;
    memcpy(m_sysInfo.justcall[1].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[1].szTargetID);
    m_sysInfo.justcall[1].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","3","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[2].uiNumber = 3;
    memcpy(m_sysInfo.justcall[2].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[2].szTargetID);
    m_sysInfo.justcall[2].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","4","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[3].uiNumber = 4;
    memcpy(m_sysInfo.justcall[3].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[3].szTargetID);
    m_sysInfo.justcall[3].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","5","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[4].uiNumber = 5;
    memcpy(m_sysInfo.justcall[4].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[4].szTargetID);
    m_sysInfo.justcall[4].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","6","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[5].uiNumber = 6;
    memcpy(m_sysInfo.justcall[5].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[5].szTargetID);
    m_sysInfo.justcall[5].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","7","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[6].uiNumber = 7;
    memcpy(m_sysInfo.justcall[6].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[6].szTargetID);
    m_sysInfo.justcall[6].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","8","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[7].uiNumber = 8;
    memcpy(m_sysInfo.justcall[7].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[7].szTargetID);
    m_sysInfo.justcall[7].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","9","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[8].uiNumber = 9;
    memcpy(m_sysInfo.justcall[8].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[8].szTargetID);
    m_sysInfo.justcall[8].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","10","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[9].uiNumber = 10;
    memcpy(m_sysInfo.justcall[9].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[9].szTargetID);
    m_sysInfo.justcall[9].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","11","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[10].uiNumber = 11;
    memcpy(m_sysInfo.justcall[10].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[10].szTargetID);
    m_sysInfo.justcall[10].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","12","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[11].uiNumber = 12;
    memcpy(m_sysInfo.justcall[11].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[11].szTargetID);
    m_sysInfo.justcall[11].uiTargetNum = GetJustCallNum(szStr); GetPrivateProfileString("JustCall","13","0-0",szStr,MAX_CALLLENGTH,chPath);
    m_sysInfo.justcall[12].uiNumber = 13;
    memcpy(m_sysInfo.justcall[12].szTargetID,szStr,MAX_CALLLENGTH);
    GetJustCallID(m_sysInfo.justcall[12].szTargetID);
    m_sysInfo.justcall[12].uiTargetNum = GetJustCallNum(szStr);
    //其他设置信息
    m_sysInfo.byShowOnline = GetPrivateProfileInt("Other","ShowOnly",0,chPath);
    //快捷拨号设置信息
    TCHAR  szStr1[MAX_SHORTCUT+1];
    TCHAR  szStrTemp[MAX_SHORTCUT+1]; GetPrivateProfileString("ShortCut","1","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[0].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[0].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[0].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[0].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","2","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[1].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[1].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[1].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[1].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","3","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[2].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[2].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[2].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[2].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","4","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[3].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[3].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[3].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[3].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","5","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[4].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[4].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[4].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[4].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","6","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[5].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[5].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[5].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[5].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","7","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[6].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[6].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[6].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[6].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","8","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[7].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[7].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[7].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[7].uiTargetNum = GetShortCutNum(szStr1); GetPrivateProfileString("ShortCut","9","0@0-0",szStr1,MAX_SHORTCUT,chPath);
    memcpy(m_sysInfo.shortcut[8].szNumber,szStr1,MAX_SHORTCUT);
    GetShortCut(m_sysInfo.shortcut[8].szNumber);
    memcpy(szStrTemp,szStr1,MAX_SHORTCUT);
    memcpy(m_sysInfo.shortcut[8].szTargetID,GetShortCutID(szStrTemp),MAX_SHORTCUT);
    m_sysInfo.shortcut[8].uiTargetNum = GetShortCutNum(szStr1);
    //邀请设置信息
    m_sysInfo.byReplyMode = GetPrivateProfileInt("Invite","type",0,chPath);
    }
      

  4.   

    SYSSETTING_INFO  m_sysInfo; typedef struct _tagJustCallInfo
    {
    unsigned int uiNumber;              //中心调度台直通的分机号
    TCHAR  szTargetID[MAX_ACCOUNT+1];   //直通的目标ID
    unsigned int uiTargetNum;           //分机号
       
    _tagJustCallInfo()
    {
    memset(this,0,sizeof(JUSTCALL_INFO));
    }
    }JUSTCALL_INFO,*LPJUSTCALL_INFO;
    //快捷拨号配置信息
    typedef struct _tagShortCutInfo
    {
    TCHAR  szNumber[MAX_SHORTCUT+1];    //快捷拨号的号码
    TCHAR  szTargetID[MAX_ACCOUNT+1];   //目标ID
    unsigned int uiTargetNum;           //分机号

    _tagShortCutInfo()
    {
    memset(this,0,sizeof(SHORTCUT_INFO));
    }
    }SHORTCUT_INFO,*LPSHORTCUT_INFO;
    //中心调度台的系统设置信息
    typedef struct _tagSysSettingInfo
    {
    //网络设置
    TCHAR  szServerIP[MAX_ADDRESS+1];  //服务器ip地址端口号
    unsigned int   uiLocalPort;                      //端口号 //录音设置
    TCHAR  szRecordFilePath[MAX_FILEPATH+1];  //录音文件位置
    BYTE  byAutoRecTalk;                      //是否开启通话自动录音,1表示自动,0表示不自动
    BYTE  byAutoRecMeet;                      //是否开启会议自动录音,1表示自动,0表示不自动 //直通设置
    JUSTCALL_INFO  justcall[MAX_NUM_JUSTCALL]; //其他设置
    BYTE  byShowOnline;  //1表示只显示在线调度台,0表示全显示 //快捷拨号
    SHORTCUT_INFO  shortcut[MAX_NUM_SHORTCUT]; //邀请设置
    BYTE  byReplyMode;   //0表示自动进入会议,1表示手动选择 _tagSysSettingInfo()
    {
    memset(this,0,sizeof(SYSSETTING_INFO));
    }
    }SYSSETTING_INFO,*LPSYSSETTING_INFO;