Я пишу на C #. Как я могу узнать, какие методы / функции я могу использовать в неуправляемой DLL, которая не относится к Windows? Пример: у меня на компьютере установлено какое-то программное обеспечение, у него есть dll, и я хочу знать, каковы мои варианты создания кода для подключения к этому программному обеспечению?
Для нативных библиотек DLL, для которых у вас нет ссылки, вы можете использовать утилиту dumpbin в Visual Studio SDK для извлечения списка экспортируемых функций в DLL.
Ссылка на дампбин здесь: http://msdn.microsoft.com/en-us/library/c1h23y6c(VS.71).aspx
А страница CodeProject, содержащая некоторые дополнительные сведения о том, как использовать дампбин в сочетании с поиском правильных сигнатур P / Invoke, находится здесь: http://www.codeproject.com/KB/mcpp/usingcppdll.aspx#Retrieve
использовать Depends.exe (который поставляется вместе с VS).
Зависит от отображения всех экспортированных функций, которые могут быть вызваны из управляемого кода с помощью Pinvoke.
PInvoke.net - отличный ресурс для взаимодействия .NET. В них перечислены не только функции, доступные в собственных библиотеках Windows, но и подпись, которую необходимо использовать в коде .NET.
Я просто хотел бы добавить, что , если это COM-сборка , подобно COM-компоненту VB6, его можно просмотреть в Object Explorer в Visual Studio, и это довольно хорошо, потому что он разбивает все на части для Вы довольно мило.
Object Explorer
Я читаю блог о PInvoke Interop Assistant, который также может работать с нашими собственными DLL http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120