那么我试图编译一个我正在处理的小测试应用程序。更改代码生成后用代码255退出的特定代码行
所以让事情变得短而简单:
当我设置从“多线程DLL”到“多线程”我的代码生成摆脱一些依赖,下面的代码行崩溃我的应用程序(其中它通常运行没有任何瑕疵)
的崩溃发生时,我想很短的路径转换为长路径。作为这样的:
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
GetLongPathNameA(tmp,tempFolder,MAX_PATH);
崩溃,特别是发生在第一个行:
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
所以任何想法在这里为什么它当你切换的代码生成模式突然停止工作?谢谢!
编辑:
经过一些代码重写,我设法找出它执行
getenv("Temp");
非常非常奇怪的透视时,因为它在其他模式
当您构建项目时是否有任何警告? – Dialecticus 2010-11-20 11:46:29
不是没有,它只是出于一些奇怪的原因代码255退出 – zeta 2010-11-20 12:12:36
为什么'reinterpret_cast'是必要的? 'getenv'的结果是'char *',它应该自动转换为'LPCSTR'(即const char *')。如果你在没有演员的情况下得到了错误,他们可能值得注意。 – 2010-11-25 01:19:45