проблемы с ntdll.lib
Linking...
1>meshook.obj : error LNK2019: unresolved external symbol _RtlNtStatusToDosError@4 referenced in function "unsigned long __cdecl GetSystemHandles(void)" (?GetSystemHandles@@YAKXZ)
1>meshook.obj : error LNK2019: unresolved external symbol _NtQuerySystemInformation@16 referenced in function "unsigned long __cdecl GetSystemHandles(void)" (?GetSystemHandles@@YAKXZ)
1>meshook.obj : error LNK2019: unresolved external symbol _NtQueryInformationThread@20........и тд
поискал в инет, надо добавть
#pragma comment (lib, "ntdll.lib")
ddk у меня нет, поэтому нашел в инете только отдельно ntdll.lib
теперь выдает
Linking...
1>LIBCMT.lib(stricmp.obj) : error LNK2005: __stricmp already defined in ntdll.lib(ntdll.dll)
1>.\Release/meshook.exe : fatal error LNK1169: one or more multiply defined symbols found
почему говорит что уже определен??
и если не трудно дайте ссылку где можно скачать полный ddk со всеми include'ми и lib'ами.
Зарание спасибо
#ifndef ИМЯ_ИНКЛУДЕ_ФАЙЛА_H
#define ИМЯ_ИНКЛУДЕ_ФАЙЛА_H
А в конец
#endif
Это предотвратит от повторного включения.
Цитата: elsuk
теперь выдает
Linking...
1>LIBCMT.lib(stricmp.obj) : error LNK2005: __stricmp already defined in ntdll.lib(ntdll.dll)
1>.\Release/meshook.exe : fatal error LNK1169: one or more multiply defined symbols found
почему говорит что уже определен??
и если не трудно дайте ссылку где можно скачать полный ddk со всеми include'ми и lib'ами.
Зарание спасибо
Говорит потому, что в RTL (LIBCMT.lib) такая функция уже определена.
На вскидку точно сказать, как разрешить проблему, не могу. Нужна студия, надо поэксперементировать. Проблема решается, это точно, т.к. сам точно ntdll.lib использовал с RTL.
Попробуй это:
http://support.microsoft.com/kb/148652
А ты проверь, прописал ли ты свой .lib в опциях linker'а. Linker->Input->Additional Dependencies. Туда впиши её.
elsuk, с нтдлл нуна ДДК юзать. Там и компилер не той версии что в студии, и енверопмент не тот грузится при компиляции.
Цитата: Alexandoros
elsuk, с нтдлл нуна ДДК юзать. Там и компилер не той версии что в студии, и енверопмент не тот грузится при компиляции.
Неправильный ответ.
Цитата: Green
Неправильный ответ.
Неправильный ответ.
Цитата: Alexandoros
Неправильный ответ.
ntdll можно использовать и без DDK, что я и делал, что, как понимаю, получилось и у автора.
Компилятор и окружение не имеет в данном случае НИКАКОГО значения.
оказалось все гораздо проще надо было просто поменять _stricmp на strcmp и все отлично компилится