Импорт функций из ntdll.dll

Тема в разделе "WASM.BEGINNERS", создана пользователем zoool, 22 мар 2008.

  1. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    САБЖ
    Вот в параметрах линкера указал ntdll.lib
    сам либ-файл поместил в папку со всеми остальными либами

    в проекте в хидере описал функцию

    NTSYSAPI
    NTSTATUS
    NTAPI
    NtLoadDriver(PUNICODE_STRING DriverServiceName);

    А все-равно при компиляции анрезолвед ехтернал.
    Подскажите, в чем может быть трабла и как решать?
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Код (Text):
    1. extern "C" {
    2.  
    3. NTSYSAPI
    4. NTSTATUS
    5. NTAPI
    6. NtLoadDriver(PUNICODE_STRING DriverServiceName);
    7. }
     
  3. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    wsd
    спасибо! А можешь объяснить, что означает этот "C" ?

    Почему обычный extern NtLoadDriver не катит?
     
  4. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    zoool
    vs по умолчвнию мангалит свой экспорт и ищет мангаленный импорт
    по соглашения мангалинга CPP.
    когда ты указываеш extern "C" то компилятор использует в этом блоке чисто
    сишное резолвировании имён соглашение.

    вся системная часть винда использует чисто сишное соглашение о внешних именах.
    На сайте где-то про мангалинг статья была.
     
  5. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    спс
    респект!
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    zoool
    это все между прочим написано в FAQ форума. читать надо.