具有无效PDB路径的DLL

时间:2010-08-20 13:35:32

标签: windows debugging dll

我正试图让我们的一款旧游戏上班,以便我们重新发布它。除了我最初运行可执行文件时,我收到以下错误消息:

驱动器中没有磁盘。请将磁盘插入驱动器\ Device \ Harddisk4 \ DR4

然后当我点击“取消”或“继续”时,然后继续加载游戏并正常工作。

所以我将exe加载到反汇编程序中,结果是在尝试加载granny2.dll的符号时。这是callstack:

callstack image http://www.dracan.co.uk/temp/grannybugcallstack.png

所以它试图从我没有的驱动器/目录中加载granny2.pdb(它将成为Granny 3D库的一部分)。

在我们的游戏目录中,有granny2.dll。所以我通过Visual Studio的dumpbin实用程序运行它,并在其中引用该路径:

Debug Directories

    Time Type       Size      RVA  Pointer
-------- ------ -------- -------- --------
40493D28 cv           37 00000000    5A400    Format: NB10, 3FF4AC61, 32, h:\build\granny\release\rt\granny2.pdb

我从各种在线资源中获取了这个DLL的几个版本,它们似乎在DLL中都有相同的PDB路径。

任何人都可以想到绕过这条错误消息吗?

我正在运行Windows7。一位同事正在运行Vista,并且刚刚开始看到它,但上周已经运行它而没有收到错误。不幸的是,他从来没有想过他的电脑上发生了什么变化。另一位正在运行XP的同事根本没有得到这个错误

谢谢你对此有任何帮助,
丹。

3 个答案:

答案 0 :(得分:0)

既然你说这可以在你的同事的XP机器上运行,你可以尝试在win 7中以XP虚拟化模式运行它。

答案 1 :(得分:0)

您可以尝试联系Granny 3D的供应商,因为它是12000美元的产品。他们可能愿意并且能够提供一些技巧来克服这个问题。

答案 2 :(得分:0)

DLL已使用Visual Studio 6.0构建,如NB10标志所示。