win32 project for MSVC 2008
От: pepsicoca  
Дата: 23.05.11 15:44
Оценка:
Добрый день.

Имею MSVC 2008 и WinXP.

Создаю проект как C++ проект Win32.
Транслирую в нем консольную программу.
Получаю екзешник, который не требует инсталляции.
Под WinXP все работает.

НО!!! При попытке запуска этого екзешника под Win2000 екзешник не работает без выдачи какой-либо диагностики.

Появилось подозрение, что транслируется проект под платформу .NET.

Вопросы:

1. Почему проект, указанный как Win32, транслируется под платформу .NET?
2. Где в настройках проекта надо указать, чтобы MSVC транслировала проект под Win32?

Спасибо

24.05.11 21:38: Перенесено из 'C/C++'
Re: win32 project for MSVC 2008
От: uzhas Ниоткуда  
Дата: 23.05.11 15:50
Оценка:
Здравствуйте, pepsicoca, Вы писали:

P>Добрый день.


P>Имею MSVC 2008 и WinXP.


P>Создаю проект как C++ проект Win32.

P>Транслирую в нем консольную программу.
P>Получаю екзешник, который не требует инсталляции.
наивное предположение
возможно, вам надо бинари какие-то подложить, чтобы программа взлетела
P>Под WinXP все работает.

P>НО!!! При попытке запуска этого екзешника под Win2000 екзешник не работает без выдачи какой-либо диагностики.


подозреваюю все же, что проблема в отсутствии рантайма
в вин200 нет ивент логов? почитайте журналы ошибок. также могу порекомендовать программу filemon, чтобы понять почему программа не стартует (обычно ей каких-то файлов не хватает). только не знаю взлетит ли filemon под вин2000

P>Появилось подозрение, что транслируется проект под платформу .NET.

чем обусловлено такое предположение? какие зависимости у вашей программы? мое предположение основано на довольно частых личных проблемах с рантаймом=)

P>Вопросы:


рантайм вы можете найти в вашей студии в винХР, а также могу порекомендовать гугл
вы также можете линковать свою программу статически с рантаймом. тогда дополнительные бинари не понадобятся
вопросы оставлю без ответов =\
Re[2]: win32 project for MSVC 2008
От: pepsicoca  
Дата: 23.05.11 16:09
Оценка:
Здравствуйте, uzhas, Вы писали:

U>Здравствуйте, pepsicoca, Вы писали:


P>>Добрый день.


P>>Имею MSVC 2008 и WinXP.


...

U>рантайм вы можете найти в вашей студии в винХР, а также могу порекомендовать гугл

U>вы также можете линковать свою программу статически с рантаймом. тогда дополнительные бинари не понадобятся
U>вопросы оставлю без ответов =\

ээээ... то есть MSVC не прилинковывает рантайм? Дело в том, что в моей программе нет обращений ни к каким библиотекам (графическим или иным). Моя программа это чисто расчетная утилита. Весь ввод-вывод происходит через cin-cout. Мне казалось, что libc всегда прилинковывается статически и только графические библиотеки оформляются в виде dll. Например в случае в Borland C++ Builder 6.0 консольные утилиты не требуют никаких дополнительных dll для своей работы.
Re[3]: win32 project for MSVC 2008
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 23.05.11 19:15
Оценка:
Здравствуйте, 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 нет.
Маньяк Робокряк колесит по городу
Re[4]: win32 project for MSVC 2008
От: Baskak Россия  
Дата: 24.05.11 04:42
Оценка: +1
Здравствуйте, Marty, Вы писали:

...

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 она использует.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.