Странно работают функций из wininet.dll и urlmon.dll из под службы

Тема в разделе "WASM.BEGINNERS", создана пользователем _sheva740, 12 ноя 2010.

  1. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Добрый день.
    Отлаживаю службу.
    В цикле обращаюсь к серваку, там выполняется php скрипт и
    рез. работы отсылеется дальше.

    Пытаюсь применить там функции из либ:
    - wininet.dll (InternetOpen),
    - urlmon.dll (URLDownloadToFile)

    Служба в виде отдельного exe-шника, без самозапуска.
    ... под отладчиком на этих функциях - ступор.

    Служба в виде dll-ки.
    ... под отладчиком на этих функциях - ступор.

    Служба в виде самозапускающегося, саморегистрирующегося exe-шки.
    Т.е. когда и регистрация службы и запуск в одном и том-же модуле.
    ... работает! ???

    Код с wininet.dll и urlmon.dll проверял - рабочий.

    Вопрос - что не так с wininet.dll и urlmon.dll в контексте сервиса?
    Или я ошибаюсь?
    Кто-то сталкивался?

    Советуют использовать winhttp.dll.
    Не подбросит ли кто winhttp.inc и .lib для masm-a если не жалко?

    Спасибо.
     
  2. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Возможно забыл про CoInitialize.
     
  3. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Partner
    Если можно, подробней plz :)
     
  4. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    _sheva740,

    Динамические библиотеки, пользующиеся COM, не делают её инициализации («и это правильно» ©, ибо узнать готова ли уже эта лошадь, кроме как эмпирически — нету способу). Т.е. CoInitialize() неплохо бы вызвать самому (ну и CoUninitialize() впоследствии тоже).
     
  5. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    baldr
    Спасибо за подсказку!
    В понедельник неприменимо испробую :)
     
  6. vptrlx

    vptrlx New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2009
    Сообщения:
    15
  7. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    vptrlx
    Спасибо большое!
    Вышел из положения так
    Код (Text):
    1. ...
    2. .data
    3.     cmd     db 'C:\Program Files\Internet Explorer\IEXPLORE.EXE http://mysite.com/getdata.php', 0
    4. ...
    5. proc ServiceMain, dwNU1, dwNU2
    6. ...
    7. __next:
    8.     invoke  WinExec, cmd, SW_HIDE
    9.     invoke  Sleep,  WAIT_FOR
    10.         ; и закрыть Explorer ...
    11.     jmp __next
    12. endp
     
  8. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Не подбросит ли кто winhttp.inc и winhttp.lib для masm-a если не жалко?
    plz :)
     
  9. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Нашел только Lib
     
  10. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Llirik
    Спасибо, попробуем!