Поиск неуправляемого API dll?

#c# #api #dll

Вопрос:

Я пишу на C#.
Как я могу узнать, какие методы/функции я могу использовать в неуправляемой библиотеке dll, которая не принадлежит Windows?
Exmaple : У меня на компьютере установлено некоторое программное обеспечение, в нем есть библиотека dll, и я хочу знать, какие у меня есть варианты создания кода для подключения к этому программному обеспечению?

Ответ №1:

Для собственных библиотек DLL, на которые у вас нет ссылки, вы можете использовать утилиту dumpbin в пакете SDK Visual Studio для извлечения списка экспортированных функций в библиотеке DLL.

Ссылка на мусорную корзину находится здесь: http://msdn.microsoft.com/en-us/library/c1h23y6c(VS.71).aspx

И страница CodeProject, содержащая некоторые дополнительные сведения о том, как использовать dumpbin в сочетании с поиском правильных подписей P/Invoke, находится здесь: http://www.codeproject.com/KB/mcpp/usingcppdll.aspx#Retrieve

Ответ №2:

PInvoke.net это отличный ресурс для взаимодействия с .NET. В них перечислены не только функции, доступные в собственных библиотеках Windows, но и подпись, которую необходимо использовать в вашей .ЧИСТЫЙ код.

Комментарии:

1. Делает пинвок. сетевые библиотеки DLL не входят в win32?

2. Я думаю, что там есть и другие неуправляемые API, но я не уверен, какие именно.

Ответ №3:

использовать Depends.exe (который поставляется вместе с VS).

Это будет отображать все экспортированные функции, которые могут быть вызваны из управляемого кода с помощью Pinvoke.

Ответ №4:

Я читал блог о помощнике по взаимодействию PInvoke, который также может работать с нашими собственными библиотеками DLL http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120

Ответ №5:

Я просто хотел бы добавить, что если это сборка COM, например, компонент COM VB6, ее можно просмотреть Object Explorer в Visual Studio, и это довольно приятно, потому что она довольно хорошо раскрывает все для вас.