Здравствуйте уважаемые эксперты Расскажите как компилировать программу на СИ++ из командной строки для компилятора Borland C++ 5.02 - 5,5. Почему при компиляции программы hello (ExamplesDOShello.c) программой bcw.exe из пакета Borland C++ 5.02 получается exe'шник в 59 килобайт. Как можно уменьшить размер хотя бы до нескольких килобайт.
Здравствуйте, Alexej! 59 кб потому, что к твоему коду добавляется стартовый код, типа CRT... Почитай документацию в своем Borland C++ 5.02 - там должны быть описаны параметры командной строки, которые указывают на то, чтобы ничего лишнего к проге не добавлялось... Ответ отправлен: 28.03.2003, 12:46 Отправитель: D1g174LM4n14c Отвечает DiGiT[old]
Добрый день, Alexej! компилируй bcc32.exe там посмотришь ключи сможешь скомпилить маленькую прогу Ответ отправлен: 29.03.2003, 06:45 Отправитель: DiGiT[old]
Вопрос № 655
Уважаемые эксперты! Посоветуйте как поступить в таком случае.Разработана программа на Visual C++.В нее вставлена процедура на ассемблере, которая должна напрямую "общаться" с LPT портом компьютера (там "сидит" самодельное устройство),но при запуске программы выдается сообщение об ошибке, точно перевести не могу, но смысл такой что данная программа не обладает привилегией обращаться к портам. Что делать в таком случае? Спасибо.
Здравствуйте, Sergey! В таких случаях обычно пишут свои драйвера. Часто в виде vxd, но, возможно, как-то еще можно. VXD-драйвер имеет привилегии нулевого (или первого?) кольца и права на доступ к портам у него есть. Вы же можете посылать ему сообщения и получать callback-вызовы.
Ответ отправлен: 29.03.2003, 23:12 Отправитель: baldr Отвечает akul
Приветствую Вас, Sergey! А ничего. Из User Mode никто к порту LPT не пустит... Нужно драйвер писать... Есть правда одна лазейка, если собрать Win16 приложение... Но нужен какой-нить старый компилятор типа VC++ 2.0 для этого.... Ответ отправлен: 30.03.2003, 21:32 Отправитель: akul Отвечает Ramzes
Доброе время суток, Sergey! Ну естесственно... У тебя наверное стоит WinNT/2000/XP Под Windows NT полъзователъские программы не могут напрямую обращаться к устройствам. Для етого прорамма должна иметъ соответсвующие привилегии. Ты должен написатъ sys или vxd драйвер. Или вместо ассемблерных вставок используй стандартные API функции. Например CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); ну и дальше ReadFile WriteFile. Ответ отправлен: 29.03.2003, 14:05 Отправитель: Ramzes Отвечает xiron
Доброе время суток, Sergey! Во первых, какая у тебя ОС ? Наверное Win технологии NT. Если это так, то твоя программа не сможет обращатся к портам напрямую. Нужно пользоватся API функциями. 1. Tы можеш переписать код ассемблера или по крайней мере кусок кода обращающийся к портам, например IN, OUT. 2. Или написать kernel mode driver, что в данном случае наверное является абсурдом. Удачи Ответ отправлен: 31.03.2003, 09:09 Отправитель: xiron Отвечает Yuri Gordienko
Добрый день, Sergey! А не в XP(2k) ли она запускается? Там с портами работать можно только через драйвер, - в общем, в вопросе мало информации, из которой можно понять что к чему... Удачи
Ответ отправлен: 31.03.2003, 10:24 Отправитель: Yuri Gordienko Отвечает Avl2k
Доброе время суток, Sergey! Видимо, выдается сообщение "Privileged instruction". Дело в том, что в Windows низкоуровневые операции (например, доступ к портам), запрещены в программах пользовательского кольца защиты. В Win9x с этим попроще, большинство операций проходит, а в NT/2000/XP придется писать драйвер устройства. Так что если нужна работа этой прохраммы под NT/2000/XP, то ставьте DDK и изучайте написание драйверов. С уважением, Avl2k. Ответ отправлен: 31.03.2003, 12:13 Отправитель: Avl2k
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.