Я хочу использовать отражение для динамического вызова DLL (а не сборки, не управляемой, возможно, объектной модели COM) в vb.net.Вызов методов в не-сборке (не управляемых) DLL через отражение в 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, который я могу разобрать и понять?
Избегайте пытается реализовать свой собственный PInvoke маршаллер, детали съест. ТипBuilder.DefinePInvokeMethod() является инструментальным. –