命令行等效Visual Studio正在做什么

时间:2018-04-12 19:58:19

标签: visual-studio dll visual-studio-2017

我正在使用Visual Studio 2017开展项目。在Visual Studio中,一切正常。

当我尝试运行编译生成的.exe时,程序会中止。我认为它与dll有关。

有没有办法确切了解Visual Studio正在做什么才能让可执行文件正常运行,我能否以某种方式看到一个命令行,相当于Visual Studio对可执行文件的作用?

这是一个opencv C ++项目,如果它有任何相关性。

1 个答案:

答案 0 :(得分:1)

默认情况下从Visual Studio开始调试时,当前工作目录是项目文件(.vcxproj)所在的文件夹。从命令行或Windows资源管理器启动应用程序时,当前工作目录是.exe所在的目录。因此,要测试这是否是问题,请创建一个启动.exe的快捷方式,但在项目文件所在的快捷方式中设置工作目录。或者将Visual Studio中的工作文件夹更改为.exe所在的位置(项目属性>配置属性>调试>工作目录)

调试和运行之间的另一个区别是堆。有关详细信息,请参阅this问题。

要查看正在加载哪些dll,从何处以及以何种顺序使用来自Sysinternals Suite的Process Monitor。如果缺少某些dll,日志将显示Windows尝试从PATH中的每个可能目录加载它,以及当前工作目录,并且失败。