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

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


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 879
от 17.10.2007, 07:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 482, Экспертов: 64
В номере:Вопросов: 2, Ответов: 6


Вопрос № 105031: Здравствуйте! Не получается установить компилятор DJGPP. Объясните как прописать это в bat. файле? Открываю указанный файл в блокноте и не знаю куда вписать ниже приведенные пути. Операционная система windows xp. prof. SET D...
Вопрос № 105131: Подскажите как можно динамически выделить память для массива структур, и как затем можно будет обращаться к элементам конкретной структуры. (C++Builder). У меня не получилось. (ENUM_SERVICE_STATUS *ess=new ENUM_SERVICE_STATUS [n]). Еще один вопро...

Вопрос № 105.031

Здравствуйте!

Не получается установить компилятор DJGPP. Объясните как прописать это в bat. файле? Открываю указанный файл в блокноте и не знаю куда вписать ниже приведенные пути. Операционная система windows xp. prof.

SET DJGPP=C:DJGPPDJGPP.ENV,В переменную пути (PATH) добавьте название каталога с исполнимыми модулями компилятора:

C:DJGPPBIN .

С уважением к Вам Vidok.

Отправлен: 11.10.2007, 08:00
Вопрос задал: Vidok (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Arct
Здравствуйте, Vidok!
Есть два пути для записи значения переменной Path
Один это файл autoexec.bat он лежит в корневой папке диска
в него просто вносится переменная в виде строки
Например
path C:DJGPPBIN;C:EXE
Мы присваиваем переменной path два значения C:DJGPPBIN и C:EXE
Если переменой path в файле нет
просто добавте строчку и сохраните файл.
Если такая переменная уже есть допишите в конце строки через точку с запятой свой путь
и сохраните файл...
Только вот я не помню помоему нужно машину перезапустить после этих манипуляций... или не надо??? :-)
Второй вариант

Нажимаем <win>+<Break>(или "Мой Компьютер"->Свойства)
Вкладка "Дополнительно" внизу кнопка "Переменные среды"
Жмём... Появилось окно
В верхней половине форма с парами имя_переменной:значение_переменной
Для вашей учетной записи из под которой вы работаете,
в нижней общие значения для всех учетных записей на компьютере.
Я обычно изменяю общую переменную.
Выбираем нужную переменную (т.е. Path) и жмём кнопку "изменить"(она чуть ниже)
В появившемся окне две формы ввода в верхней имя системной переменной в нижней значение
Значение может быть не одно(да скорее всего у вас их уже быдет несколько)
Пути записываются через символ ;
То есть к примеру
C:Program FilesCommon FilesInstallShield;C:DJGPPBIN;C:Tasmin

После последнего значения 'точка с запятой' не обязательна
Ответ отправил: Arct (статус: 1-ый класс)
Ответ отправлен: 11.10.2007, 08:58

Отвечает: Aristos
Здравствуйте, Vidok!

Вам надо установить переменные окружения Windows. [Control panel]/[System Properties]/[Advanced]/[Environment Variables]. Там либо для текущего пользователя (сверху), либо для всех пользователей (снизу) надо завести новую переменную с именем DJGPP и значением C:DJGPPDJGPP.ENV , а так же модифицировать переменную PATH путем добавления в конец ; (точки с запятой) и C:DJGPPBIN . Изменять значение строки PATH надо аккуратно, т.к. в ней записаны пути по умолчанию для системы и других программ. После внесения изменений надо перезагрузиться.

После перезагрузки правильность задания переменных окружения можно проверить следующим образом - запусть консоль [start]/[run]/cmd.exe . Там с помощью команд:
SET DJGPP
SET PATH
проверить наличие и значения соотв. переменных.

Если вы не хотите вносить изменений в глобальные перемнные окружения, и у вас есть bat-файл запускаемый при компиляции, то в начале bat-файла можно добавить следующие команды:
SET DJGPP=C:DJGPPDJGPP.ENV
SET PATH=%PATH%;C:DJGPPBIN

Это позволит задать переменные окружения для текущего сеанса консоли.
---------
нет ничего невозможного
Ответ отправил: Aristos (статус: 8-ой класс)
Ответ отправлен: 11.10.2007, 11:41

Отвечает: Dr_Andrew
Здравствуйте, Vidok!
С трудом вспомнил, что такое Windows XP, и как она выглядит, но попробую помочь (уже устанавливал djgpp).
Нажмите кнопку "Пуск". Щёлкните *правой* кнопкой мыши по значку "Мой компьютер". В открывшемся контекстном меню выберите пункт "Свойства". В открывшемся диалоговом окне "Свойства системы" перейдите на вкладку "Дополнительно". Нажмите кнопку "Переменные среды". В открывшемся диалоговом окне в разделе "Переменные среды пользователя" нажмите кнопку "Создать". Назовите переменную DJGPP, а в поле значения переменной введите C:DJGPPDJGPP.ENV. Вновь нажмите кнопку "Создать". Назовите переменную PATH, а в качестве значения установите C:DJGPPBIN
В разделе "Переменные среды" (кажется) или "Системные переменные" нажмите кнопку "Создать". Назовите переменную DJGPP, а в поле значения переменной введите C:DJGPPDJGPP.ENV. Найдите среди системных переменных переменную PATH, выделите её. Нажмите кнопку "Изменить". *Перед* другими записями в поле значений переменной введите C:DJGPPBIN, отделив эту запись от других точкой с запятой (;). Нажмите кнопку OK. Всё. Bat-файл не нужен.
Ответ отправил: Dr_Andrew (статус: 1-ый класс)
Ответ отправлен: 11.10.2007, 12:09


Вопрос № 105.131
Подскажите как можно динамически выделить память для массива структур, и как затем можно будет обращаться к элементам конкретной структуры. (C++Builder). У меня не получилось. (ENUM_SERVICE_STATUS *ess=new ENUM_SERVICE_STATUS [n]).
Еще один вопрос.
Как узнать сколько нужно создать структур ENUM_SERVICE_STATUS
для функции EnumServicesStatus?
Спасибо.
Отправлен: 12.10.2007, 01:32
Вопрос задал: Афтайкин Владимир Максимович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Arct
Здравствуйте, Афтайкин Владимир Максимович!
Посмотрите вот здесь http://www.firststeps.ru/mfc/winapi/r.php?14
Ответ отправил: Arct (статус: 1-ый класс)
Ответ отправлен: 12.10.2007, 10:19
Оценка за ответ: 3
Комментарий оценки:
Читал. В описанной программе создается фиксированное кол-во структур (не динамически)

Отвечает: Mihail Yarlykov
Здравствуйте, Афтайкин Владимир Максимович!

Для динамического выделения памяти под массив структур, неодходимо выделить память под массив указателей на эти структуры:

ENUM_SERVICE_STATUS **ess = new ENUM_SERVICE_STATUS*[n];
или
LPENUM_SERVICE_STATUS *ess= new ENUM_SERVICE_STATUS*[n];

С EnumServicesStatus не работал, но по описанию необходимо n сделать с запасом, а количество сервисов и соответственно возвращенных структур передаётся в предпоследний параметр: LPDWORD pcbBytesNeeded.

Обращение к элементам конкретной структуры:

printf( "%s", ess[j].lpServiceName ); //Имя сервиса

---------
Нет ничего невозможного!
Ответ отправил: Mihail Yarlykov (статус: 2-ой класс)
Ответ отправлен: 12.10.2007, 10:44
Оценка за ответ: 3
Комментарий оценки:
Не понятно как передавать функции EnumServices массив указателей.
Спасибо.

Отвечает: kool
Здравствуйте, Афтайкин Владимир Максимович!
Где-то так - см.приложение.
Удачи!

Приложение:

---------
I am.

Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 12.10.2007, 21:23
Оценка за ответ: 5
Комментарий оценки:
Спасибо. То что надо.


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.0 от 14.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное