【问题标题】:Application which loads a DLL works in MSDEV but fails at command line加载 DLL 的应用程序在 MSDEV 中工作,但在命令行中失败
【发布时间】:2012-02-09 09:37:46
【问题描述】:

我有一个应用程序,它会根据传入的参数动态加载 DLL。

当我在调试或从 MSDEV 2008 环境发布时运行它时,它工作正常。 当我在调试或从命令提示符释放时运行它时,它无法加载 DLL。

参数是一样的,我复制/粘贴了。

从命令提示符和开发环境调用 exe 的方式有区别吗?

【问题讨论】:

  • 您是从 exe 所在目录的命令提示符运行 exe 吗?
  • 你得到什么错误代码?您是否尝试过使用 Dependency Walker?
  • @Naveen,好问题 - 是的。
  • @SteveTaylor:出于测试目的,我会尝试两件事:(1)。将 dll 的绝对路径传递给 AfxLoadLibrary 看看会发生什么 (2)。检查是否指定了其他工作目录(即在 VS 项目属性中指定了默认目录以外的目录)。
  • @Steve Dependency Walker 非常擅长显示在这种情况下失败的位置。问题可能与路径有关;它很可能无法加载某些远程依赖项,而不是专门加载您的 DLL。

标签: c++ windows command-line


【解决方案1】:

我正在使用 VS2010,但我很确定这不会产生任何影响。从 VS 执行时,工作目录设置为包含您的代码文件的目录(如果在项目属性中未更改),当通过命令行启动它时,它设置为命令行当前正在使用的目录( ">" 前面的文本)。您必须使用“cd”将工作目录更改为包含 DLL 的路径。

【讨论】:

  • 谢谢,我会记住的。但是,问题只是我是个白痴! (看看上面答案的 cmets)。
  • 啊,好吧,没关系,我忽略了“再显示 2 个 cmets”“按钮”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多