【发布时间】:2016-10-10 13:56:44
【问题描述】:
在我的开发人员机器(Visual Studio 2015,64 位)上编译和运行以下简单程序可以正常工作。
即使安装了 x64-redistributables (msvcp140.dll),在不同的机器上运行相同的代码也会崩溃并出现 Windows 错误对话框:
#include <memory>
#include <iostream>
int main(int argc, char **argv) {
std::shared_ptr<int> test; // comment out to run on both machines
std::cout << "Done: " << std::endl;
}
删除带有共享指针的行使其工作。
知道这里可能存在什么问题,或者如何调试?
【问题讨论】:
-
msvcp140.dll 似乎有问题 从您的应用程序文件夹中的其他系统复制工作 dll 并再次测试。
-
从崩溃的机器中收集小型转储并进行调查。有什么错误?什么配置? (我认为在
release中,这条线不应该有任何区别,因为它会被完全优化出来)。为了以防万一,请仔细检查您是否真的在两台机器上都尝试过 this 代码 -
什么错误信息?
-
使用 MSVC 远程调试器附加到不同机器上崩溃的应用程序
-
@JanRuegg: 不是全部,可能只是 msvcp140.dll 和 msvcp140p.dll,复制到 app 文件夹(不在系统文件夹中)只是为了测试 dll。
标签: c++ visual-studio visual-c++ visual-studio-2015 redistributable