gpt4 book ai didi

c++ - 更改代码生成后以代码 255 退出的特定代码行

转载 作者:太空狗 更新时间:2023-10-29 22:52:27 25 4
gpt4 key购买 nike

好吧,我试着编译了一个我正在开发的小型测试应用程序。

因此,为了使事情简短明了:

当我将我的代码生成从“多线程 DLL”设置为“多线程”以摆脱一些依赖时,以下代码行使我的应用程序崩溃(它通常运行时没有任何缺陷)

当我想将短路径转换为长路径时发生崩溃。因此:

LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
GetLongPathNameA(tmp,tempFolder,MAX_PATH);

崩溃特别发生在第一行:

LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));

那么这里有什么想法,为什么当您切换代码生成模式时它突然停止工作?谢谢!

编辑:

经过一些代码重写后,我设法发现它在执行时特别崩溃

getenv("Temp");

非常非常奇怪,因为它在其他模式下确实有效

最佳答案

请确保所有项目(以及这些项目的所有文件)都被一致地设置为针对相同版本的运行时库进行编译和链接,即在您的情况下为多线程静态库。如果您混合使用这些选项,编译和链接程序将具有未定义的行为。还要确保您针对外部库(MFC 等)的正确版本进行编译和链接。在某些情况下,您只能使用某些版本的运行时,例如如果您与 .Net 进行互操作,则必须使用多头 dll 版本。

关于c++ - 更改代码生成后以代码 255 退出的特定代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com