Сборка дров в mvs

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

  1. CleX

    CleX New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    12
    Пытаюсь собрать дров, текст драйвера предельно прост
    DbgPrint("Hello from C-driver!");
    return 0xC0000182L;//STATUS_DEVICE_CONFIGURATION_ERROR;
    Проблема в том что он не линкуется. Пишет
    error LNK2019: unresolved external symbol "unsigned long __cdecl DbgPrint(char *,...)" (?DbgPrint@@YAKPADZZ) referenced in function "long __stdcall DrvEntry(void *,void *)" (?DrvEntry@@YGJPAX0@Z)
    Отключаю инклуд ntddk.h, сам объявляю
    extern "C" long __cdecl DbgPrint(char* Format,...);
    И все работает. Я так понимаю дело в декорировании имен, подскажите плз как решить эту проблему.
     
  2. CleX

    CleX New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    12
    Что никто дров под vs не собирал?? Забавно..
     
  3. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    собирал. Но такой проблемы ниразу не встречалось.
     
  4. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    CleX, ты компилишь .cpp файл в C++ режиме. Либо повтыкай
    extern "C"
    {
    #include ....
    }

    либо компиль .c
     
  5. CleX

    CleX New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    12
    Спасибо, повтыкал=)