我的程序在Debug版本下运行正常,不过在Release下执行到pDC->SetMapMode(MM_TEXT);这句话就会出错,弹出 XXX.exe 遇到问题需要关闭。我们对此引起的不便表示这个对话框,我想问一下这个是什么原因??

解决方案 »

  1.   

         你可以完全重新编绎一遍试试,就是先清理工程,然后再编绎,这样所有的文件都编绎了,不至于因为没改过的文件没被编绎只是用原先的OBJ文件来连接.
         我以前遇到过这种情况,完全重新编绎后就没事了,当时应该是连接的问题,全部重新编绎后编绎程序就会选择正确的合适的各段进行连接,进行分配内存空间
      

  2.   

    也有可能是pdc这个变量变成无效了,你再加个判断PDC这个变量的有效性,如果无效就弹出提示,因为我不知道你的PDC是从哪取得
      

  3.   

    重新编译了还是不行,
    CDC  printerDC;

    // a printer is given...
        if (printerDC.CreateDC (szDriver, szDevice, szDevicePort, NULL) == 0) 
    {
    return;

    if (printerDC==NULL)
    {
    AfxMessageBox("DC error");
    return;
    }
    InitPrinter(&printerDC);
    DC我是这样获取的
    InitPrinter(CDC *pDC)
    {
    ………………
    iRet=pDC->SetMapMode(MM_TEXT);   就是这句弹出那个错误对话框
    ………… }