2010-08-20 4 views
1

Я пытаюсь заставить одну из наших старых игр работать, чтобы мы могли ее повторно отпустить. Он работает, кроме того, что, когда я сначала запустить исполняемый файл, я получаю следующее сообщение об ошибке:DLL с неверным пути PDB

«Там нет диска в дисководе Пожалуйста, вставьте диск в дисковод \ Device \ Harddisk4 \ DR4»

Затем, когда я нажимаю «Отменить» или «Продолжить», он продолжает загружать игру и отлично работает.

Итак, я загрузил exe в дизассемблер, и, оказывается, при попытке загрузить символы для granny2.dll. Вот CallStack:

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

Так он пытается загрузить granny2.pdb (который будет частью Granny 3D библиотеки) из диска/директории у меня нет.

В нашем каталоге игр есть granny2.dll. Так что я побежал, что через Dumpbin утилиты Visual Studio, и этот путь упоминается в нем:

Debug Directories 

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

Я схватил несколько версий этой DLL из различных источников в Интернете, и все они, кажется, имеют один и тот же PDB путь в DLL.

Может кто-нибудь подумать о том, чтобы обойти это сообщение об ошибке?

Я запускаю Windows7. Коллега работает с Vista, и только что начал ее видеть, но запустил ее на прошлой неделе, не получив ошибку. К сожалению, он не может думать ни о чем, что изменилось на его компьютере с тех пор. Другой коллега, который работает XP, не получает эту ошибку вообще

Спасибо за любую помощь,
Dan.

+1

Не понимаю. Этот стек вызовов относится к библиотеке справки Debug; это происходит только тогда, когда он отлаживается? – Luke

+0

Нет, это происходит и из отладчика. Я просто загрузил его в дизассемблер, чтобы узнать, что вызывал код, чтобы вызвать появление этого сообщения. Как только это сообщение появилось, я ударил паузу в дизассемблере, и это тот столбец, который он мне дал. Возможно, это красная селедка, но это одно и то же сообщение об ошибке в отладчике или из него. – Dan

+1

Итак, сама игра пытается загрузить свои собственные отладочные символы? Звучит немного странно для меня. Какой код делает это - сама игра или библиотека Granny 3D? – Luke

ответ

0

Поскольку вы сказали, что это работает на машине вашего коллегу в XP, вы можете попробовать запустить его в режиме виртуализации XP в Win 7.

+0

Я попробовал его в режиме совместимости, который не изменил ситуацию. Просто попробовал установить приложение Virtual PC (я полагаю, это то, что вы имели в виду), но теперь он просит меня перезагрузиться в третий раз - на эту медленную машину требуется около получаса. Учитывая, что даже если он работает в режиме виртуализации, это не поможет нам решить проблему - тогда мне не стоит тратить время на тестирование. Если я не пропущу точку в этом тесте? – Dan

+0

То, что я имел в виду, это режим совместимости на win 7 machine, который доступен на более высоких вкусах, таких как конечная. Он будет использовать виртуализацию ЦП (если она доступна), чтобы она не замедляла работу вашего компьютера. И да, странно, что он пытался загрузить pdb в игру. Вы изучали то же самое (granny.dll) на машине вашего колледжа? Попытайтесь получить его версию dll и заставить ее работать. –

+0

Я вижу, что не так много людей жалуются на это. Возможно, это может быть проблема с настройкой. Обратите внимание, что это помогает, хотя похоже, что это всего лишь общие шаги для решения проблем с dll, а не для granny.dll: http://pcsupport.about.com/od/findbyerrormessage/a/granny-dll- не обретенные пропущенный-error.htm –

0

Вы могли бы попытаться связаться с продавцом по Granny 3D, так как она составляет $ 12000 продукт а. Они могут быть готовы и могут предоставить пару советов для решения проблемы.

0

DLL был создан с Visual Studio 6.0, как указано флагом NB10.