2011-12-16 3 views
0

привет я работающий нижеследующая система.

windows 7 ultimate sp1 x64.
визуальная студия 9 C++ sp1.
directx sdk 9 (я не знаю указанной версии моей версии, но ее версия выше, чем в июне 2010 года).
подталкивание x86 1,47

vC++ 2008 installer project msvcrt.dll

и моя визуальная студия не английская версия, так что я не могу написать меню или имя сообщения в excaetly. но это значение почти такое же.

мой проект - 3D-игра.
Я делаю установщика моего проекта с помощью проекта «инсталлятора визуальной студии»
и включал в себя все библиотеки DLL с зависимыми проектами (используя функцию визуальной студии)
все в порядке. тест установки и запуска является успешным. и каждая dll установлена ​​нормально. (ex d3d9.dll)

Когда я протестировал его на чистом стекле xp sp3, установите (setup.exe). но когда я запускаю эту программу, она выдает ошибку и не выполняется.


диалоговое окно ошибки в том, что:

Процедура входа point_except_handler4_common не может находиться в динамической библиотеки msvcrt.dll.

(мой Windows XP не английский, но почти сразу)

я попробовал следующее:
Project Installer -> "Свойства" -> "Необходимые условия .." -> «Выберите, какие предпосылки для установки: "-> добавить проверку в ->" Библиотеки времени исполнения Visual C++ 2010 (x86) & .Net Framework 3.5 sp1 -> «Укажите место установки для необходимых условий» -> «Загрузите необходимые компоненты из веб-узла поставщика компонентов сайт "



и выход
installerproject.msi
vcredist_x86.exe
setup.exe

я попробовать переустановить vcredist_x86 и перезагрузиться. клиентский компьютер (чистые окна xp3) имеет такую ​​же проблему. и Google говорит, что «msvcrt.dll вызвано многими проблемами». но ни одна статья не разрешает мою проблему в моем списке поиска. й они не говорят «нет общего решения :(
кто знает решение этой проблемы? и почему эта проблема возникает?

помочь мне пожалуйста. и мне жаль моему английскому кратчайшему., что мое лучший английское умение

+0

спасибо, что ваш ответ очень полезен для меня. d3d9.dll зависит от msvcrt.dll – user1101221

ответ

1

Возможно, вы захотите загрузить свою программу в Dependency Walker на компьютере XP, чтобы узнать, какой бинарный файл пытается подключиться к msvcrt! _except_handler4_common.

msvcrt.dll является системной DLL и не является частью библиотек времени исполнения Visual C++ 2008 (или 2010 - непонятно, что вы используете). Среда DLL VC++ 2008 называется msvcr90.dll, поэтому я предполагаю, что есть некоторая косвенная зависимость от msvcrt.dll. Вам нужно выяснить, какой двоичный файл пытается использовать этот экспорт с msvcrt.dll и определить, совместим ли он с WinXP или как его можно сделать совместимым.

Обратите внимание, что поскольку msvcrt.dll является системной DLL, он находится под защитой системы Windows, поэтому он обычно не может быть обновлен/изменен за исключением пакетов обновлений и обновлений системы.

Просто для сравнения:

  • машина работает WinXP SP3 здесь есть msvcrt.dll версия 7.0.2600.5512 - это не имеет точку входа _except_handler4_common.
  • другая машина, работающая под управлением Win7 SP1 x64, имеет 32-разрядную версию msvcrt.dll 7.0.7600.16385, и у нее есть эта точка входа.