Как использовать функции из DLL, не зная хедера?

Kastaneda

Сталкнулся с такой проблемой, не знаю как ее решить. Большинство ф-ций имеют прототипы, которые находятся в каком-нибудь хедере, и если не знаешь в каком, то достаточно открыть сайт msdn.microsoft.com и прочитать там инфу о нужной ф-ции. Но вот сталкнулся с такой, где указано только то, что она содержится в ntdll.dll и все. Тупо написать ее прототип естественно ни чего не даст. Поэтому вопрос - как можно использовать подобные ф-ции? Желательно с примером C\C++.
2 ответа

Kastaneda

Грузишь библиотеку с помощью LoadLibrary или GetModuleHandle. Далее используешь GetProcAddress чтобы получить адрес по которому расположена функция, и, как бы выразится ), присваиваешь этот адрес заранее объявленному прототипу.После вызываешь функцию. И если использовал LoadLibrary надо освободить библиотеку с помощью FreeLibrary.p.s. Примером могу поделиться только на C#, хотя пройдя по ссылке там будет пример.


Kastaneda

Спасибо, буду разбираться.