2010-08-01 6 views
0

Я написал игру в C++ + SFML с помощью Visual Studio 2010 Express. Я упакован во все библиотеки, такие как msvcr100.dll, opengl32.dll и т. Д., Но некоторые pepole могут запускать мою игру, а другие не могут:/Я не знаю, почему, потому что я добавил все, что необходимо для запуска игры. Люди, которые не могут запускать игру, получают такие сообщения, как: «Точка входа в систему _ftol2 не может быть расположена в библиотеке динамических ссылок msvcrt.dll»Моя программа не работает на машине друга

Как я могу запустить эту игру на всех машинах?

+1

Пожалуйста, добавьте точное сообщение об ошибке. Это также поможет прояснить, как вы «упаковываете все библиотеки» в свою игру. –

ответ

1

Кажется, что ваши друзья не имеют того же msvcrt.dll, что и у вас. Они должны установить распространяемый VC 2010 пакет, в котором есть все библиотеки, или вы можете связать свою игру статически со стандартными библиотеками времени исполнения.

Вы можете получить распространяемый пакет here (x86 version)

+0

Но я добавляю эти библиотеки в пакет – gamer43

+0

Вы можете связать статически с библиотеками, как я уже сказал. Таким образом, необходимые функции будут связаны внутри exe. – Jaka

6

Пожалуйста, не копируйте библиотеки DLL. Используйте Visual Studio 2010 Redistributable Package. Если вы хотите сделать это проще, используйте какой-то инструмент, который позволит вам создать проект установки. В Visual Studio Professional есть простой, простой в использовании мастер настройки.

+0

Но, что я могу сделать, если мой друг не очень хорошо знает компьютер и не хочет устанавливать пакет распространяемого пакета Visual Studio 2010, он только хочет скачать пакет от меня и запустить игру. – gamer43

+1

Тогда вы должны сделать для него программу установки. Microsoft предоставляет модуль слияния установщика Windows для среды выполнения VS2010, которая может быть интегрирована в MSI-установщик, который также содержит вашу игру. –

+2

Вы всегда можете ссылаться на библиотеку C++. Перейдите в Project> Properties ...> C/C++> Generation Code и измените значение библиотеки времени выполнения на «Multi-threaded (/ MT)». Таким образом, нет необходимости устанавливать какие-либо распространенные компоненты. – user353297

1

Пожалуйста, отредактируйте ваше сообщение, чтобы включить сообщение об ошибке REAL - в противном случае люди начнут угадывать игры и не смогут предоставить вам ответ так хорошо, как если бы вы включили всю необходимую информацию в свою публикацию.

сообщение об ошибке, вероятно,

«Точка входа в процедуру _ftol2 не может находиться в динамической подключаемой библиотеки msvcrt.dll»

... который, скорее всего, означает, что вы если неверная версия msvcrt.dll, и люди, которые могут запускать ваше приложение, имеют правильную версию, установленную случайно. Чтобы исправить это, укажите правильную версию.

0

Я нахожу проблему, я добавил свой opengl32.dll в этот пакет. Я думаю, opengl32.dll работает на разных системах, поэтому, когда я удаляю эту библиотеку, каждый может запустить мою программу.

Смежные вопросы