这个问题好像从哪见过?我还是再说一回吧。 VB不能生成DLL,只能生成ACTIVEX DLL,这两种DLL不是一回事。你用的方法是调用一般DLL,即WINDOWS API的方法,要调用VB生成的ACTIVEX DLL要在‘工程’-->‘引用’里选好。 然后用: dim dllinstance as myactivexdll set dllinstance=new myactivexdll 或: dim dllinstance as new myactivexdll 其中myactivexdll是你生成的ACTIVEXDLL的类名,dllinstance是这个类的实例,即一个对象变量。
如果 set x=form2.s 那么以后X就是form2.s 这样在用时就不用再写form2.s了写X就行了,方便。如果 set x=new form2.s X就是FORM2.S的一个类的实例,一个点型的例子就是 dim rs as adodb.recordset set rs=new adodb.recordset 'rs就是adodb.recordset类的一个实例,adodb.recordset 其实是adodb的一个子类,但在VB里子类没有明确说明。
VB不能生成DLL,只能生成ACTIVEX DLL,这两种DLL不是一回事。你用的方法是调用一般DLL,即WINDOWS API的方法,要调用VB生成的ACTIVEX DLL要在‘工程’-->‘引用’里选好。
然后用:
dim dllinstance as myactivexdll
set dllinstance=new myactivexdll
或:
dim dllinstance as new myactivexdll
其中myactivexdll是你生成的ACTIVEXDLL的类名,dllinstance是这个类的实例,即一个对象变量。
"工程"->"工程属性"->"部件"->"版本兼容",选中"二进制兼容"
2。选择二进制兼容
我不是菜鸟,我只是菜虫而已.不过我会努力的.
2 All:
这是一些在网站看到的代码.我改了一下.
dim dllinstance as myactivexdll
set dllinstance=new myactivexdll
我不是菜鸟,我只是菜虫而已.不过我会努力的. ~!~
2 All:
这是一些在网站看到的代码.我改了一下.
dim dllinstance as myactivexdll
'''set dllinstance=new myactivexdll 不用new, 为什么??
CopyMemory dllinstance,Form,4
.......
代码没有用到new,却用到一个API CopyMemory,但程序运行一点问题都没有.
到底这么回事? 是不是new 和 CopyMemory 作用是一样的?
我想知道ActiveX dll 的结构, Dll 结构 的资料.看看到底有什么不同.
哪位能提供一些资料吗?
Email:[email protected]
感谢楼上各位的回答.分数我迟点会加的.
那么以后X就是form2.s 这样在用时就不用再写form2.s了写X就行了,方便。如果 set x=new form2.s X就是FORM2.S的一个类的实例,一个点型的例子就是
dim rs as adodb.recordset
set rs=new adodb.recordset 'rs就是adodb.recordset类的一个实例,adodb.recordset
其实是adodb的一个子类,但在VB里子类没有明确说明。
就是说,能不实例化,就能调用组件的函数.
我对AcitveX Dll 结构不清楚,不知道
CopyMemory dllinstance,Form,4
的作用是什么. 拷贝了4字节的东西.其中Form 就是窗体.dllinstance 就是不实例化的组件.我还是需要ActiveX Dll 结构的资料. :(
我的意思是: 不实例化组件,就调用里面的函数.可能不用常规方法.我基础太差.表达能力也有限.让大家见笑了.