Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проблемы с ntdll.lib

11K
28 июля 2007 года
elsuk
31 / / 23.10.2006
вобщем ругается линковшик
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'ами.
Зарание спасибо
5.7K
29 июля 2007 года
Vedrus
49 / / 29.10.2006
может ты эту прагму в include-файле подключаешь? А потом этот файл два раза – вот и жалуется. Тогда воткни в include-файл в начлао:
#ifndef ИМЯ_ИНКЛУДЕ_ФАЙЛА_H
#define ИМЯ_ИНКЛУДЕ_ФАЙЛА_H
А в конец
#endif

Это предотвратит от повторного включения.
3
29 июля 2007 года
Green
4.8K / / 20.01.2000
Цитата: 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

5.1K
29 июля 2007 года
freestyler
102 / / 23.02.2007
А ты проверь, прописал ли ты свой .lib в опциях linker'а. Linker->Input->Additional Dependencies. Туда впиши её.
398
31 июля 2007 года
Alexandoros
630 / / 21.10.2005
elsuk, с нтдлл нуна ДДК юзать. Там и компилер не той версии что в студии, и енверопмент не тот грузится при компиляции.
3
01 августа 2007 года
Green
4.8K / / 20.01.2000
Цитата: Alexandoros
elsuk, с нтдлл нуна ДДК юзать. Там и компилер не той версии что в студии, и енверопмент не тот грузится при компиляции.


Неправильный ответ.

398
01 августа 2007 года
Alexandoros
630 / / 21.10.2005
Цитата: Green
Неправильный ответ.


Неправильный ответ.

3
01 августа 2007 года
Green
4.8K / / 20.01.2000
Цитата: Alexandoros
Неправильный ответ.


ntdll можно использовать и без DDK, что я и делал, что, как понимаю, получилось и у автора.
Компилятор и окружение не имеет в данном случае НИКАКОГО значения.

11K
02 августа 2007 года
elsuk
31 / / 23.10.2006
всем огромное спасибо за советы тема закрыта, сам разобрался.
оказалось все гораздо проще надо было просто поменять _stricmp на strcmp и все отлично компилится
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог