Не удалось найти точку входа в процедуру _ftol2 в библиотеке динамических ссылок msvcrt.dll - PullRequest
3 голосов
/ 07 декабря 2009

Недавно я возился с небольшим игровым проектом с использованием VC ++ 2008. Я использую SDL, OpenGL, Boost и Box2D в качестве включенных библиотек. Он отлично работает на моей машине с Windows 7, а также на машине w7 друга. Как бы то ни было, он не будет работать на машине моего второго друга XP sp3, с установленным перенаправляющим пакетом vc ++ 2008 SP1. Когда он запускает .exe, он получает ошибку:

"Не удалось найти точку входа в процедуру _ftol2 в библиотеке динамических ссылок msvcrt.dll"

Большинство прочитанных мной форумов предполагают, что msvcrt.dll поврежден или устарел. Моя версия msvcrt.dll 7.0.7600.1385 и его 7.0.2600.5512. Не могу найти обновление для него, не могу просто заменить его, потому что он перезагружается к старой версии при перезагрузке, и кажется, что это не помогает просто включить мой msvcrt.dll в папку моей игры. Согласно этой ветке на gamedev.net, OpenGL32.dll вызывает _ftol2. Их вывод заключается в том, чтобы установить пакет обновления vc ++ 2008, который, как я упоминал, уже установлен.

Есть идеи, которые могли бы пролить свет на решение этой ошибки?

Изменить: Используя Dependency Walker Я заверил, что OpenGL32.dll и GLU32.dll действительно вызывают _ftol2 в MSVCRT.dll. Как мне предотвратить эту зависимость?

Ответы [ 3 ]

3 голосов
/ 16 декабря 2010

Я также получил похожее странное сообщение "strncpy_s could not be located in the dynamic link library msvcrt.dll" и нашел решение. В моем случае при создании проекта установки с VS 2005, MAPI32.dll был добавлен. Итак, установка была сделана под WIN 7 64 и не работала под XP 32 (хотя правильный MAPI32.dll использовался из WIN 7). После того, как он исключен из проекта или вручную удален из целевой папки, все работает нормально.

1 голос
/ 07 декабря 2009

Я не должен был включать opengl32.dll из моей системы в мою игру. Opengl32.dll в XP является более старой версией и должным образом связана с MSVCRT.dll в XP. Когда я включил Windows 7 opengl32.dll, он просто не совпадает с DLL-файлы XP. Удаление opengl32.dll и glu32.dll из папки с игрой решило проблему, и игра работает нормально.

1 голос
/ 07 декабря 2009

Вам необходимо определить, на что ссылается MSVCRT.DLL. Ничего не должно быть - это версия ЭЛТ для Windows. Ваше приложение должно быть связано с MSVCRT90.DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...