Вопрос № 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?
Спасибо.
Отвечает: 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.
Ответ отправил: Mihail Yarlykov (статус: 2-ой класс)
Ответ отправлен: 12.10.2007, 10:44 Оценка за ответ: 3 Комментарий оценки: Не понятно как передавать функции EnumServices массив указателей. Спасибо.
Отвечает: kool
Здравствуйте, Афтайкин Владимир Максимович!
Где-то так - см.приложение.
Удачи!
Приложение:
--------- I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 12.10.2007, 21:23 Оценка за ответ: 5 Комментарий оценки: Спасибо. То что надо.