Microsoft Visual Studio:如何查找加载dll的位置?

Microsoft Visual Studio:如何查找加载dll的位置?,dll,path,Dll,Path,delete运算符使用了错误版本的dll(MSVCR90d.dll而不是MSVCR90.dll),导致崩溃。在调用堆栈中,只显示dll名称,而不显示其路径。如何看到路径 编辑:我是在发布模式下构建的,而不是在调试模式下。那么为什么要使用调试dll呢?我在许多其他网站上看到过同样的问题,但找不到有效的解决方案。 昨天我发现使用Dependency Walker时,调试dll被获取,因此我重命名了dll,然后在Dependency Walker中获取了发布版本,并且我的程序没有崩溃。我今天没有做任何

delete运算符使用了错误版本的dll(MSVCR90d.dll而不是MSVCR90.dll),导致崩溃。在调用堆栈中,只显示dll名称,而不显示其路径。如何看到路径

编辑:我是在发布模式下构建的,而不是在调试模式下。那么为什么要使用调试dll呢?我在许多其他网站上看到过同样的问题,但找不到有效的解决方案。
昨天我发现使用Dependency Walker时,调试dll被获取,因此我重命名了dll,然后在Dependency Walker中获取了发布版本,并且我的程序没有崩溃。我今天没有做任何改变,但是程序又开始崩溃了。当我看到dependency walker树时,它显示了带有问号的MSVCR90d.dll(调试dll),表示在路径中找不到它。为什么它不能获取发布dll?我也不知道运行时从哪里使用调试dll。

要了解dll的详细信息,您可能需要使用

但是,在您的情况下,我认为
d
被附加到
dll
的名称之后,可能是因为您正在创建
DEBUG
构建,并且为该构建加载了所有
dll
的相应
DEBUG
版本


如果您选择创建一个
版本
构建,您将不会在MSVCR90.dll中附加
d
来查找dll的详细信息,您可能希望使用

但是,在您的情况下,我认为
d
被附加到
dll
的名称之后,可能是因为您正在创建
DEBUG
构建,并且为该构建加载了所有
dll
的相应
DEBUG
版本


如果您选择创建一个
发行版
构建,您将不会在MSVCR90.dll中附加
d
,您不需要知道dll路径,您需要了解调用delete运算符的调试版本的原因。也许,_DEBUG常量是在发布配置中定义的。

您不需要知道Dll路径,您需要理解为什么调用delete运算符的调试版本。也许,_DEBUG常量是在发布配置中定义的

  • 可以将它们添加到全局路径环境变量中
  • 您可以通过右键单击解决方案并选择“添加引用”,然后浏览到特定的dll来手动指定dll
  • 您可以将DLL的路径添加到“工具”>“选项”>“项目和解决方案”>“VC++目录”下的“可执行文件”设置中
  • 可以将它们添加到全局路径环境变量中
  • 您可以通过右键单击解决方案并选择“添加引用”,然后浏览到特定的dll来手动指定dll
  • 您可以将DLL的路径添加到“工具”>“选项”>“项目和解决方案”>“VC++目录”下的“可执行文件”设置中

  • 我也同意@Ozair Kafray的回答!!嘿,贾耶什,请找到我编辑过的问题和更多细节。我添加了对包含发布dll的目录的引用,但运行时行为仍然没有改变,我不知道调试dll是从哪里获取的,甚至不知道为什么使用调试dll,因为我已经在发布模式下构建了我的程序。它通常不应该拾取错误的。请使用该工具分析您的web应用程序所走的路线……我也同意@Ozair Kafray的回答!!嘿,贾耶什,请找到我编辑过的问题和更多细节。我添加了对包含发布dll的目录的引用,但运行时行为仍然没有改变,我不知道调试dll是从哪里获取的,甚至不知道为什么使用调试dll,因为我已经在发布模式下构建了我的程序。它通常不应该拾取错误的。请使用该工具分析您的web应用程序所采用的路径……我创建了一个发布版本(启用了调试符号),而不是调试版本。我不知道为什么MSVCR90d.dll的调试版本被选中。我认为这会使VS也使用调试版本。不用它试一次,就可以确认了。然后,您可以重新发布一个新问题或相应地修改此问题,以获得适当的答案。我刚刚在删除编译器和链接器设置中的调试选项后进行了尝试,但仍然面临相同的问题。调试dll被使用并崩溃。我创建了一个发布版本(启用了调试符号),而不是调试版本。我不知道为什么MSVCR90d.dll的调试版本被选中。我认为这会使VS也使用调试版本。不用它试一次,就可以确认了。然后,您可以重新发布一个新问题或相应地修改此问题,以获得适当的答案。我刚刚在删除编译器和链接器设置中的调试选项后进行了尝试,但仍然面临相同的问题。调试dll被使用并崩溃。有任何答案对您有用吗?如果没有,您是否找到了其他解决方案?如果是的话,你应该把它贴在这里,并接受它作为一个答案。有没有一个答案对你有用?如果没有,您是否找到了其他解决方案?如果是,你应该把它贴在这里,并接受它作为一个答案。