Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 223
от 01.04.2003, 14:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 666
Отправлено ответов: 1458
Активность: 218.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

D1g174LM4n14c
Статус: Начальный
Общий рейтинг: 119.35
[Подробней >>]
DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 111.08
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 113.17
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
akul
Статус: Опытный
Общий рейтинг: 116.25
Телефон: +6019-6416245
[Подробней >>]
Ramzes
Статус: Опытный
Общий рейтинг: 129.54
[Подробней >>]
xiron
Статус: Доверительный
Общий рейтинг: 113.15
[Подробней >>]
 
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 114.16
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 120.84
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 654. Здравствуйте уважаемые эксперты Расскажите как компилировать программу на СИ++ из командной строки... (ответов: 2)
Вопрос № 655. Уважаемые эксперты! Посоветуйте как поступить в таком случае.Разработана программа на Visual C++.В н... (ответов: 6)

Вопросов: 2, ответов: 8


 Вопрос № 654

Здравствуйте уважаемые эксперты
Расскажите как компилировать программу на СИ++ из командной строки для компилятора Borland C++ 5.02 - 5,5. Почему при компиляции программы hello (ExamplesDOShello.c) программой bcw.exe из пакета Borland C++ 5.02 получается exe'шник в 59 килобайт. Как можно уменьшить размер хотя бы до нескольких килобайт.



Вопрос отправлен: 28.03.2003, 00:42
Отправитель: Alexej

[Следующий вопрос >>] [Список вопросов]

Отвечает D1g174LM4n14c

Здравствуйте, 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 портом компьютера (там "сидит" самодельное устройство),но при запуске программы выдается сообщение об ошибке, точно перевести не могу, но смысл такой что данная программа не обладает привилегией обращаться к портам.
Что делать в таком случае?
Спасибо.



Вопрос отправлен: 29.03.2003, 13:42
Отправитель: Sergey (alf888@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает baldr

Здравствуйте, 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.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (35)
C / C++ (27)
Perl (6)
Delphi (15)
Pascal (19)
Basic / VBA (9)
Java / JavaScript (8)
PHP (5)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (30)
Windows NT/2000/XP (22)
"Железо" (28)
Поиск информации (15)
Администратору
Windows NT/2000/XP (10)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (5)
Трудовое право (5)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное