能否使ActiveX DLL库在引用后直接以“函数名”的方式使用
编号:QA002777
建立日期: 2000年3月27日 最后修改日期:2002年1月20日
所属类别:
cx:
操作系统:Pwin98,编程工具:VB5企业版
我在VB5的菜单“工程”-->“引用”和“对象浏览器”中发现原来VB的内部函数都是从动态库VBA5.DLL中引用而来,所以对于VB的内部函数都可以通过“函数名”或“VBA.函数名”来使用,如VAL()==VBA.VAL()。但是我自己做的 ActiveX DLL 库只能先 Dim XX As New Class1,再用 “XX.函数名” 的方式来引用,在“对象浏览器”中进一步发现,VBA库中的所有函数等既都可在“全局”中看到,又可在相应的类及模块中看到,而我做的 DLL 中的函数只能在相应的类及模块中看到,“全局”中什么也没有,我想,这大概就是为什么我做的 ActiveX DLL 库只能用“库名。函数名”的方式来引用的原因吧!
问题:我该怎么做才能使我做的 ActiveX DLL 库在引用后像VBA的函数一样能无须事先定义个变量,而直接能以“函数名”的方式来使用。
回答:
这是可以实现的。只需将ActiveX DLL中包含所需函数的类模块的属性设置为“GlobalMultiUse”即可。
szanron问:
我想像调用VC的DLL文件一样调用,请问可行吗?如Public Declare Function AbortDoc Lib "gdi32" Alias "AbortDoc" (ByVal hdc As Long) As Long
答:不行,VB无法生成标准的DLL。
此问题由施凡回答。
| |
|
|
| |
|
|