2014-01-14 4 views
0

Когда я запускаю свой проект в режиме выпуска, у меня есть следующее сообщение об ошибке:

This application has failed to start because GLU.dll was not found.
Кроме того, при запуске в режиме отладки, он работает только тогда, когда я бегу через Visual Studio, потому что если Я запускаю файл .exe, он не загружается.не GLU.dll нашел

ответ

1

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

Теперь, когда вы запускаете исполняемый файл, дважды щелкнув по нему, рабочий каталог - это каталог, в котором работает исполняемый файл. И поэтому DLL не найден.

Вы не должны полагаться на рабочий каталог для разрешения DLL. Лучшей практикой является размещение ваших DLL в том же каталоге, что и ваш исполняемый файл. Как только вы это сделаете, вы обнаружите, что ваше приложение загружается. Самый простой способ организовать это - использовать событие post-build для копирования DLL из каталога проекта в исполняемый выходной каталог.