Войти

Показать полную графическую версию : Visual C++ 9.0 и C++Builder 2007 - программы на голой винде (без .NET и тд)


crashtuak
20-03-2009, 19:51
Ну начал учить С++. Работаю в висуал студио 2008 експрес едишн. Надо сделать прогу, чтоб работала на голой винде, без .NETа и прочего, ну тоесть надо чтоб прога работала даже на Т40 этапе установки Виндовс ХП. Как так можно сделать? Я слышал что такое возможно.

ПЫСЫ: Visual C++ 9.0 непонравился, качнул C++Builder 2007. Вопрос тот самый. Но C++Builder 2007 вместо .NETа требует уже кучу своей дребедени.

lxa85
20-03-2009, 20:51
crashtuak, честно сказать не понял что именно требуется, но рискну предположить, что это консольное приложение.

Admiral
20-03-2009, 22:10
crashtuak, такое возможно, если тип проекта Win32. Но есть одно но, по умолчанию Visual C++ 2005\2008 при линковании, компиляции добавляет в приложение зависимость на использования файлов из соответственного "Распространяемого пакета Microsoft Visual C++" (Microsoft Visual C++ Redistributable Package). Выход: искать настройки по отключению добавления данных зависимостей или использовать другую среду разработки.
Например, более раннюю (тоже бесплатную, но уже не поддерживаемую MS так что скачать поможет гугля, но без GUI оболочки) - Visua C++2003 ToolKit выдвинутое требование (запуск на Т40) данный компилятор удовлетворяет
Q. Как компилить?
A. Я использую Visual C++ Toolkit. >> (http://forum.oszone.net/post-205023.html#post205023)
На MSFN утилиту же протестировали на Т-39 (за 39 минут до окончания установки виндовс, самый ранний этап на котором пользователь может запускать исполняеме файлы) - все работает. >> (http://forum.oszone.net/post-336774.html#post336774)
lxa85, в этой среде консольные приложения можно писать и используя .NET FrameWork.

crashtuak
21-03-2009, 20:00
Admiral, есле бы я знал что таке "линкование" :) ...

Admiral
22-03-2009, 03:50
crashtuak, на данном этапе изучения пускай это означает всего лишь один из шагов среды разработки по переводу из исходного кода в выполняемый бинарный.

crashtuak
22-03-2009, 08:18
Admiral, кароч непонравился мне Visual C++, качнул C++Builder 2007 :) (каждому свое). Ну сделал пару меленьких прог, но в чистой винде неработают :( . Памаги :)

Drongo
22-03-2009, 15:00
качнул C++Builder 2007 (каждому свое). Ну сделал пару меленьких прог, но в чистой винде неработают »Я не знаю как в С++ Builder 2007, но в C++ Builder 6 можно прочесть в этой теме - С++Builder: создание ехе файла (http://www.forum.oszone.net/thread-99956.html), возможно настройки не отличаются кардинально.

Требует вроде бы пять файлов

1. borlndmm.dll
2. cc3260mt.dll
3. stlpmt45.dll
4. rtl60.bpl
5. vcl60.bpl

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

crashtuak
23-03-2009, 08:11
Может действительно при запуске на другом компе требует *.bpl и *.dll'ки, так это отключается следующим образом:
Проэкт -> Опции -> Вкладка "Компилятор" -> Нажать на кнопку "Выпуск" -> Перейти на вкладку "Компоновщик" -> Убрать галку с пункта "Использовать динамический RTL" -> Перейти на вкладку "Пакеты" -> Снять там внизу галку с пункта "Создавать с пакетами во время компиляции". После таких "процедур", полученный ехе-файл лёгко выполняется на других машинах...
Ну, а если не это имелось в ввиду, то не знаю... Предыдущий человек прав... Добавить больше нечего...
Так работает, токо в с++ 2007 все на инглише и в настройках проекта нада менять:
- закладка packages: убрать галочку Build with runtimes packages
- закладка Linking > linker: убрать галочку Use dinamyc RTL
Взято тут:http://www.cyberforum.ru/cpp-builder/thread15180.html
ПЫСЫ: незнаю как прога скомпилена таким образом будет работать на Т39, у кого есть время и желание проверить, буду благодарный.

Drongo
28-08-2009, 12:48
На всякий случай напишу, что нужно сделать чтобы скомпилированое приложение не требовало DLL при запуске для C++ Builder 2009.

1. Выбираем Project -> Options... или жмём комбинацию клавиш < Shift + Ctrl + 11 >
2. Слева выбираем пункт C++ Compiler и в правой части окна из списка Build Configuration выбираем Release.
3. Переходим в левое окно и выбираем пункт C++ Linker, после чего в правой части щёлкаем раскрывающуюся стрелку напротив пункта Dynamic RTL и в раскрывшейся структуре ставим значения False напротив обоих значений: Dynamic RTL и Value from *Base*
4. Переходим в левое окно и выбираем пункт Packages, после выбора в правой части снимаем галочку с пункта Build with runtimes packages.

Если немного запутано написал, можно сориентироваться по скриншотам.

http://s40.radikal.ru/i087/0908/95/5d8ead7b4e01t.jpg (http://radikal.ru/F/s40.radikal.ru/i087/0908/95/5d8ead7b4e01.png.html) http://s47.radikal.ru/i115/0908/65/920b37a09136t.jpg (http://radikal.ru/F/s47.radikal.ru/i115/0908/65/920b37a09136.png.html) http://i053.radikal.ru/0908/18/f5ef4ff6d6a0t.jpg (http://radikal.ru/F/i053.radikal.ru/0908/18/f5ef4ff6d6a0.png.html)

.Земляк.
10-09-2009, 22:25
попробуйте wxDev там вроде без NET и тд...




© OSzone.net 2001-2012