Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 仅在发布模式下映射垃圾字符_Visual Studio 2008_Mfc_Map_Release_Cstring - Fatal编程技术网

Visual studio 2008 仅在发布模式下映射垃圾字符

Visual studio 2008 仅在发布模式下映射垃圾字符,visual-studio-2008,mfc,map,release,cstring,Visual Studio 2008,Mfc,Map,Release,Cstring,我有一个std::map作为函数的参数,在调试模式VS2008中,map有正确的键和值,但是当我在版本中启动程序时,map中有一些糟糕的字符 代码转储: std::map<CString, CString> libVersions; ... // fill values utilFunctions->Function(&libVersions)) bool UtilityFunctions::Function(std::map<

我有一个std::map作为函数的参数,在调试模式VS2008中,map有正确的键和值,但是当我在版本中启动程序时,map中有一些糟糕的字符

代码转储:

    std::map<CString, CString> libVersions;
    ... // fill values 
    utilFunctions->Function(&libVersions))

    bool UtilityFunctions::Function(std::map<CString,CString> *dllMapData)
    {
       ...
       map<CString,CString>::iterator it;

       for(it=dllMapData->begin(); it!=dllMapData->end(); it++)
       {  
          ...
       }
       ...
    }
你知道为什么这段代码在发布模式下不起作用吗


感谢并问候

我的猜测是,在发行版中,您仍然使用调试CRT进行编译,并且没有定义调试,反之亦然。

您可以发布填充映射的代码吗?这就是有趣的部分:如果可能的话,切换到std::string而不是CString,使用引用而不是指针。映射中的字符串看起来是完全错误的还是只有几个额外的字符?键和值都错了吗?嗨!运行库设置为/MT,生成调试信息为否!处于调试模式/MTd和/Debug!在地图上所有的字符都是蹩脚的,不仅仅是单个字符不同!还有其他想法吗!问候leon22@leon22:您在发行版中设置了什么定义?它在C/C++->预处理器Win32下运行;恩德布格_窗户_VC80_升级=0x0600_MBCS$发布版和WIN32中的NOINHERIT_调试_调试中的WINDOWS!问候leon22@leon22:嗯。。。那就破坏了这个想法: