Функции DLL и входные описания? - PullRequest
0 голосов
/ 22 декабря 2011

В настоящее время я использую vba и нашел несколько полезных фрагментов кода в Интернете.

Однако некоторые из этих фрагментов кода используют функции из DLL, например (user32).

Код работает нормально, но меня расстраивает то, что у меня нет возможности самостоятельно обнаружить такую ​​функциональность, кроме как наткнуться на код в Интернете.

Я в основном хочу знать, есть ли способ получить описания того, что конкретно делает конкретная функция DLL и что представляют входные параметры, или это можно сделать, только взглянув на библиотеки DLL на языке оригинала?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

Эти функции являются частью собственного Win32 API.

Все они довольно хорошо документированы в MSDN, документации Microsoft SDK для программистов Windows .

Например,, вы можете увидеть вызванную функцию GetParent, которая возвращает дескриптор родителя или владельца указанного окна.Документация для этой функции: здесь .

Обратите внимание, как документация говорит вам, что делает функция, как она прототипируется на языке стиля C, что представляет собой каждый из ее параметров и чтоони имеют в виду, и что это возвращаемое значение и что это значит.Очень всеобъемлющий;гарантированно ответим практически на все ваши вопросы.Вы должны обязательно прочитать раздел «Замечания» для любой функции, которая вам незнакома.Есть много важных предостережений для Win32 API - это очень мощный, но очень старый C API.Есть много произвольных ограничений, которые программисты вынуждены обходить, и теперь из-за обратной совместимости мы обременены этими обходными путями на протяжении поколений.В самом низу также указывается, какой файл DLL нужно указать для вызова этой функции.Например, GetParent находится в user32.dll.

Примерно в каждом случае, который я пробовал (и я искал много документов), вы можетевведите имя функции в Google, и соответствующая страница MSDN будет первым результатом.

0 голосов
/ 22 декабря 2011

Не в VBA, насколько я знаю, но сайт pinvoke может сильно помочь.Проверьте, насколько хорошо объяснено, например, LogonUser .Легко адаптировать VB.NET к VBA со всей этой информацией, я думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...