我想使用反射來動態調用vb.net中的dll(不是一個程序集,非託管,可能是COM對象模型)。在vb.net中通過反射調用非裝配(非託管)dll中的方法?
我見過幾種不同的方法調用dll中的一個.net程序集 - 但我還沒有找到動態調用像user32.dll或winmm.dll這樣的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
當我建立在WINMM.DLL調用mciSendString解釋,我怎麼可以使用反射來處理呢?我希望用戶能夠引用他們希望的任何dll /方法。
我可以在正確的方向得到一些指導嗎?也許甚至有些vb.net代碼我可以分解和理解?
避免嘗試實現自己的PInvoke封送處理,細節會吃掉你。 TypeBuilder.DefinePInvokeMethod()是有幫助的。 – 2011-12-26 22:49:45