vb动态调用DLL的问题
一个连接接口DLL,正常调用时 先注册DLL文件,vb中引入,创建对象都没问题;
Dim objComm As HsCommX.Comm '定义对象
objComm = CreateObject("HsCommX.Comm")
objComm.Create() '创建对象
…………
但这种方式在多线程调用的情况下性能就会急剧下降。
目前是想改成动态调用的方式,在不同的目录下放置多个DLL,但在VB.net里实在不知道怎么实现
常使用反射, Dim AssDLL As Assembly
AssDLL = System.Reflection.Assembly.LoadFile("C:\WINDOWS\system32\HsCommX.dll") '载入程序集到AssDLL中.
Dim DLLType As Type = AssDLL.GetType("HsCommX.Comm") '获取Free命名空间中的类MainFunction的类型.
Dim NewObj As Object = Activator.CreateInstance(DLLType) '实例Type DLLType获取到的类型的对像
Dim m As MethodInfo = DLLType.GetMethod("Connect") '从DLLType获取AttachCode这个方法
m.Invoke(NewObj, Nothing)
Assembly.LoadFile 直接异常,报“该模块应包含一个程序集清单”,实在是不明白~就算把HsCommX.dll所有引用的DLL放到同一个C:\1\的目录下, Load或者LoadFile("C:\1\HsCommX.dll") 也报这个异常。没怎么用过COM组件,不明白。
还有C里常见的LoadLibrary这类写法,在vb.net不知道怎么实现
Dim lb As Long, pa As Long
lb = LoadLibrary("C:\WINDOWS\system32\HsCommX.dll")
pa = GetProcAddress(lb, "DllGetClassObject")
FreeLibrary(lb)
Dim objComm As HsCommX.Comm '定义对象
objComm = CreateObject("HsCommX.Comm")
objComm.Create() '创建对象
…………
但这种方式在多线程调用的情况下性能就会急剧下降。
目前是想改成动态调用的方式,在不同的目录下放置多个DLL,但在VB.net里实在不知道怎么实现
常使用反射, Dim AssDLL As Assembly
AssDLL = System.Reflection.Assembly.LoadFile("C:\WINDOWS\system32\HsCommX.dll") '载入程序集到AssDLL中.
Dim DLLType As Type = AssDLL.GetType("HsCommX.Comm") '获取Free命名空间中的类MainFunction的类型.
Dim NewObj As Object = Activator.CreateInstance(DLLType) '实例Type DLLType获取到的类型的对像
Dim m As MethodInfo = DLLType.GetMethod("Connect") '从DLLType获取AttachCode这个方法
m.Invoke(NewObj, Nothing)
Assembly.LoadFile 直接异常,报“该模块应包含一个程序集清单”,实在是不明白~就算把HsCommX.dll所有引用的DLL放到同一个C:\1\的目录下, Load或者LoadFile("C:\1\HsCommX.dll") 也报这个异常。没怎么用过COM组件,不明白。
还有C里常见的LoadLibrary这类写法,在vb.net不知道怎么实现
Dim lb As Long, pa As Long
lb = LoadLibrary("C:\WINDOWS\system32\HsCommX.dll")
pa = GetProcAddress(lb, "DllGetClassObject")
FreeLibrary(lb)
...全文
相关推荐
vb调用dll的各种方法
vb调用dll的各种方法,便于开发VB的高级编程。 为广大编程爱好者,方便提高编程水平。
VB调用ZIP压缩和解压DLL-静态编译稳定不会提示找不到DLL
这个版本不会提示找不到DLL,之前也编译过类似的DLL,但是 里面的DLL是动态编译的,发布到网上会导致 缺少系统依赖的DLL。 这次这个版本比较稳定,是静态编译的。
VB调用VC写的DLL 实现两个字符串相加成一个字符串
VB调用VC写的DLL 实现两个字符串相加成一个字符串,业余程序员,不好的地方欢迎指出!
VB开发Dll调用起他dll
通过VB开发一个新Dll条用其他dll,来解决遇到的c++不能调用的vb开发的dll.
LISP调用VB写的DLL教程
LISP调用VB写的DLL教程,扩展lisp功能的教材。。。。。



