Вызов методов в несборочных (неуправляемых) библиотеках через отражение в vb.net? - PullRequest
0 голосов
/ 27 декабря 2011

Я хочу использовать отражение, чтобы динамически вызывать dll (не сборку, не управляемую, возможно, объектную модель COM) в vb.net.

Я видел несколько различных методов вызова метода вDLL, которая является сборкой .net - но я не нашел способ динамически вызывать метод внутри DLL, как user32.dll или winmm.dll.Я считаю, что это будет называться поздним связыванием?

Причина, по которой я спрашиваю, заключается в том, что я создаю язык, который будет зависеть от внешних библиотек для множества различных функций.

Пример (на этом языке я создаю):

Declare Function mciSendStringA using "winmm.dll" (strCommand As String, strReturn As String, returnLength As Integer, blah As Integer) As Integer

Declare Function WriteConsoleA using "kernel32.dll" (hConsoleOutput As Integer, lpBuffer As String, numberofcharstowrite as Integer, lpReserved as Integer) As Boolean

Когда я создаю интерпретатор для вызова mciSendString в winmm.dll, как я могу использовать отражение для обработки этого?Я хочу, чтобы пользователь мог ссылаться на любой dll / метод, который он пожелает.

Могу ли я получить некоторые указания в правильном направлении?Возможно, даже какой-нибудь код vb.net, который я могу разобрать и понять?

1 Ответ

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

Вы не используете отражение в неуправляемых собственных библиотеках Win32.

Вместо этого вы загружаете их и извлекаете указатели на неуправляемые функции для вызова их по адресу. Вот как это сделать в C #:

http://blogs.msdn.com/b/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-dll-from-.net-_2800_c_23002900_.aspx

...