Возникла странная проблема с созданием некоторого кода (VS2008) вокруг Detours.
Я добавил необходимые заклинания MS для компоновщика (также пытался напрямую добавить его в «Дополнительные зависимости»);
#pragma comment(lib, "detours.lib")
И правильно настроить пути включения и пути поиска в библиотеке, но я сталкиваюсь с ошибкой LNK2019.
Конкретные ошибки:
Error 1 error LNK2019: unresolved external symbol _DetourTransactionCommit@0 referenced in function _DllMain@12 dllmain.obj DetourDLL
Error 2 error LNK2019: unresolved external symbol _DetourUpdateThread@4 referenced in function _DllMain@12 dllmain.obj DetourDLL
Error 3 error LNK2019: unresolved external symbol _DetourTransactionBegin@0 referenced in function _DllMain@12 dllmain.obj DetourDLL
Появляется компоновщикнаходить файл .lib (иначе, насколько я помню, это выдает другую ошибку).
Я подал файл detours.lib в dumpbin и обнаружил, что символы там есть, но они не определены с подчеркиванием в начале (Некоторое время назад я играл на земле VC ++, хотя и не уверен, чтокомпоновщик на самом деле ищет _ или, если это просто какое-то украшение, которое компоновщик добавляет в ошибку).
0D1 00000000 SECT4B notype () External | DetourTransactionBegin
0D3 00000000 SECT4D notype () External | DetourTransactionCommit
0D5 00000000 SECT51 notype () External | DetourUpdateThread
Если кто-нибудь может дать предложение относительно того, на что смотреть дальше, я быценим это.
Только что нашел пост, в котором говорилось, что отсутствие начальных подчеркиваний в моем экспорте символов может быть связано с тем, что он был собран с другим компилятором, что НЕ в данном случае (ну, он был построен с VS2013, поэтомутехнически «другой» компилятор, но не тот, который будет использовать другие соглашения), также пытался создать один и тот же код на VS2013, и я получаю те же ошибки (неудивительно).