Хотите запустить программу на неизвестной системе - PullRequest
0 голосов
/ 11 июня 2011

Я работал над проектом VS 2005 и успешно сгенерировал исполняемый файл, который отлично работает в моей системе.Однако, когда я попытался запустить его на другом компьютере, он не запустился.Выдает сообщение об ошибке «система не может запустить указанную программу».Может кто-нибудь сказать мне, как сделать мой код невосприимчивым к такому сообщению, т.е. системно-независимому? * Используемая платформа

: Windows XP, VS 2005

расширение всех моих файлов кода - cpp, но я знаю толькос и вот что я написал внутри них.

Ответы [ 4 ]

3 голосов
/ 11 июня 2011

Я видел это, когда вы работаете в другой версии Windows, в которой нет библиотеки DLL, от которой вы зависите. Самое простое, что можно сделать, - это статически связать среду выполнения C (это обычный виновник) и использовать функцию external.exe, чтобы проверить, есть ли другие.

3 голосов
/ 11 июня 2011

Я видел до того, как исполняемый файл, созданный в Windows Sp1, не работает на SP2, и такие проблемы, как.

2 голосов
/ 11 июня 2011

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

По умолчанию даже стандартная библиотека C / C ++ предоставляется DLL.Хотя MSVCRT.DLL, используемая VC ++ 6, включена в ОС начиная с более поздних выпусков Win95, MSVCRT, требуемая VS2005, не включена в установки XP (другие версии, которые я не знаю).Поддержка во время выполнения включена в пакет перераспределения VC.Возможно, вам придется договориться, чтобы ваш установщик включил эту установку, или вы можете быть более избирательными, если знаете свои зависимости.

Некоторые вызовы Win32 API, если вы их используете, зависят от версии ОС (см. Документацию), но если вы собрали и выполнили его загрузку на XP, он должен нормально работать с любой последующей версией Windows.Вам необходимо определить различные макросы версии API, если вы хотите расширить поддержку более ранних версий Windows (что кажется нелегким).

0 голосов
/ 11 июня 2011

Вам может потребоваться установить распространяемые VS 2005 на другие машины, в зависимости от того, как вы скомпилировали свою программу.

...