Создаю проект как C++ проект Win32.
Транслирую в нем консольную программу.
Получаю екзешник, который не требует инсталляции.
Под WinXP все работает.
НО!!! При попытке запуска этого екзешника под Win2000 екзешник не работает без выдачи какой-либо диагностики.
Появилось подозрение, что транслируется проект под платформу .NET.
Вопросы:
1. Почему проект, указанный как Win32, транслируется под платформу .NET?
2. Где в настройках проекта надо указать, чтобы MSVC транслировала проект под Win32?
Здравствуйте, pepsicoca, Вы писали:
P>Добрый день.
P>Имею MSVC 2008 и WinXP.
P>Создаю проект как C++ проект Win32. P>Транслирую в нем консольную программу. P>Получаю екзешник, который не требует инсталляции.
наивное предположение
возможно, вам надо бинари какие-то подложить, чтобы программа взлетела P>Под WinXP все работает.
P>НО!!! При попытке запуска этого екзешника под Win2000 екзешник не работает без выдачи какой-либо диагностики.
подозреваюю все же, что проблема в отсутствии рантайма
в вин200 нет ивент логов? почитайте журналы ошибок. также могу порекомендовать программу filemon, чтобы понять почему программа не стартует (обычно ей каких-то файлов не хватает). только не знаю взлетит ли filemon под вин2000
P>Появилось подозрение, что транслируется проект под платформу .NET.
чем обусловлено такое предположение? какие зависимости у вашей программы? мое предположение основано на довольно частых личных проблемах с рантаймом=)
P>Вопросы:
рантайм вы можете найти в вашей студии в винХР, а также могу порекомендовать гугл
вы также можете линковать свою программу статически с рантаймом. тогда дополнительные бинари не понадобятся
вопросы оставлю без ответов =\
Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, pepsicoca, Вы писали:
P>>Добрый день.
P>>Имею MSVC 2008 и WinXP.
...
U>рантайм вы можете найти в вашей студии в винХР, а также могу порекомендовать гугл U>вы также можете линковать свою программу статически с рантаймом. тогда дополнительные бинари не понадобятся U>вопросы оставлю без ответов =\
ээээ... то есть MSVC не прилинковывает рантайм? Дело в том, что в моей программе нет обращений ни к каким библиотекам (графическим или иным). Моя программа это чисто расчетная утилита. Весь ввод-вывод происходит через cin-cout. Мне казалось, что libc всегда прилинковывается статически и только графические библиотеки оформляются в виде dll. Например в случае в Borland C++ Builder 6.0 консольные утилиты не требуют никаких дополнительных dll для своей работы.
Здравствуйте, pepsicoca, Вы писали:
P>ээээ... то есть MSVC не прилинковывает рантайм? Дело в том, что в моей программе нет обращений ни к каким библиотекам (графическим или иным). Моя программа это чисто расчетная утилита. Весь ввод-вывод происходит через cin-cout. Мне казалось, что libc всегда прилинковывается статически и только графические библиотеки оформляются в виде dll. Например в случае в Borland C++ Builder 6.0 консольные утилиты не требуют никаких дополнительных dll для своей работы.
Это неверно. Project/Properties, Configurtoion Properties/C\C++/Code Generation/Runtime library, у вас наверно стоит "* DLL", из-за чего требуется рантайм от 9ой студии, msvcrt90.dll/msvcprt90.dll, которого в 2000 нет.
...
M>Это неверно. Project/Properties, Configurtoion Properties/C\C++/Code Generation/Runtime library, у вас наверно стоит "* DLL", из-за чего требуется рантайм от 9ой студии, msvcrt90.dll/msvcprt90.dll, которого в 2000 нет.
Более того, рантайма и в XP нет, и в Vista, и наверное в Seven. На вашу XP он попал вместе со студией, и на другой XP ваш exe не запустится. Посмотрите утилитой Dependency Walker, какие dll она использует.