Для пользовательского режима DLL я могу сделать следующее:
Dll источник:
__declspec(dllexport) void dll_func() {}
...
Компилятор сгенерирует файлы dll и lib (библиотека импорта).
Exe источник:
#pragma comment(lib, "dll.lib")
__declspec(dllimport) void dll_func();
...
dll_func();
...
Однако, когда я пытаюсь сделать то же самое для двух драйверов (обычные функции импорта драйверов из драйвера экспорта), я получаю неразрешенный внешний символ:
error LNK2019: unresolved external symbol __imp__dll_func@0 referenced in function _DriverEntry@8
Это не про искажение имени, это не работает с extern "C"
или. Это как-то связано с настройкой проекта. Для экспортного драйвера я установил Драйвер экспорта (WDM) в Свойства конфигурации -> Настройки модели драйвера.
Нужно ли устанавливать другие свойства проекта? Или мы должны использовать .Защита файл с некоторыми конкретными директивами? Благодарю.
Задача ещё не решена.
Других решений пока нет …