![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Kornev |
|
||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
Добрый день, форумчане!
Помогите подружить пример программирования служб от Рихтера и winsock2.h Проблема, на сколько я понимаю, в том, что Рихтер делал свои примеры под Windows 2000 Я не знаю когда была сделана библиотека ws2_32.lib, но что то мне подсказывает что раньше... Проблемы начинаются сразу же после появления в коде строчки #include <winsock2.h> Компилятор жалуется, что:
Заглянул в cmnhdr.h Тут прописано:
Поменял на:
Теперь компилятор жалуется на 2-е ошибки: --------------------Configuration: 03 TimeService - Win32 Debug-------------------- Compiling... TimeService.cpp c:\cd\cmnhdr.h(201) : error C2065: 'MB_SERVICE_NOTIFICATION' : undeclared identifier c:\cd\03-timeservice\timeservice.cpp(272) : error C2664: 'CommandLineToArgvW' : cannot convert parameter 1 from 'char *' to 'const unsigned short *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast Error executing cl.exe. 03 TimeService.exe - 2 error(s), 0 warning(s) Первая MB_SERVICE_NOTIFICATION в функции:
Вторая в
Подскажите пожалуйста как правильно разрешить эти ошибки. Еще, я так пологаю, что после изменеия WINVER на 0x0501 моя служба перестанет работать в Windows 2000. Это так? |
||||||||||
|
|||||||||||
Kornev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
От первой ошибки избавился заменой флага на MB_DEFAULT_DESKTOP_ONLY
Поправьте меня если так делать нельзя или не правильно. |
|||
|
||||
feodorv |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Сделайте проще. Везде вместо windows.h вставьте winsock2.h, а winsock.h не включайте. Посмотрите, что будет. Если WINVER уже где-то определена, то лучше сделать так:
Даже не знаю, что сказать. Чем компилите? На какой платформе? В VC6 в WinUser.h дано такое определение:
Тут вообще не пойми, что происходит))) Возможно, это аберрации от инклюдов. Не помешает
Нет. Это сообщение отредактировал(а) feodorv - 15.7.2012, 19:56 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||||||||||
|
|||||||||||||||
Kornev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
Вторая ошибка устранилась после замены функции GetCommandLine() на функцию GetCommandLineW()
Однако этим проблемы не закончились... Компилирую службу без #include <winsock2.h> Все отлично работает. Служба стартует, останавливается, и т.д. Только добавляю строчку #include <winsock2.h>, все... Служба не стартует. Ошибка 1053: Служба не ответила на запрос своевременно. Хоть у кого нибудь есть мысли по этому поводу? Я даже не знаю что и выкладывать из исходников... Изначально примеры программирования служб от Рихтера используют именнованые каналы для сетевого взаимодействия. Я эти функции не вырезал. Может они как то конфликтуют с сокетами? |
|||
|
||||
feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
У Вас явно с инклюдами что-то не в порядке. Ну не может быть такого:
При том, что
Это сообщение отредактировал(а) feodorv - 15.7.2012, 20:00 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
Kornev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
Спасибо огромное за подсказку заменить #include <Windows.h> на #include <winsock2.h> После таких действий служба опять начала нормально стартовать, останавливаться. Не сочтите за извращение. Но на всякий случай отмечу, что все эти примеры компилирую на VC6 установленной под Win 7 с установленым пакетом SDK February 2003 Edition ver 5.2.3790.0 2003-02 Last version with VC6 support |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |