【问题标题】:Command Line Equivalent of What Visual Studio Is Doing命令行等效于 Visual Studio 正在执行的操作
【发布时间】:2018-04-12 19:58:18
【问题描述】:

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

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

有没有办法准确查看 Visual Studio 为使可执行文件正常运行所做的工作,我能否以某种方式看到与 Visual Studio 对可执行文件所做的命令行等效的操作?

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

【问题讨论】:

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


    【解决方案1】:

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

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

    使用Sysinternals Suite 中的进程监视器查看正在加载的 dll、从何处以及以何种顺序加载。如果某些 dll 丢失,日志将显示 Windows 尝试从 PATH 中的每个可能目录以及当前工作目录加载它,但失败了。

    【讨论】:

    • 谢谢你,我搞定了,你说得对,不同的工作目录是问题
    猜你喜欢
    • 2011-03-25
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多