#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, и это довольно приятно, потому что она довольно хорошо раскрывает все для вас.