vc6下写好一个简单的支持dual接口的com组件, 并且已经注册
vb6下进行调用:Private Sub Command1_Click()Dim obj As New Simple2.FunMsgBox obj.Add(10, 22)End Sub出错, 错误信息:
Compile error:
User-defined type not defined如果把
Dim obj As New Simple2.Fun 换成
Set obj = CreateObject("Simple2.Fun")则可以正常调用, 不明白的是为什么
Dim obj As New Simple2.Fun 不行??
vb6下进行调用:Private Sub Command1_Click()Dim obj As New Simple2.FunMsgBox obj.Add(10, 22)End Sub出错, 错误信息:
Compile error:
User-defined type not defined如果把
Dim obj As New Simple2.Fun 换成
Set obj = CreateObject("Simple2.Fun")则可以正常调用, 不明白的是为什么
Dim obj As New Simple2.Fun 不行??
请先引用对应的类库,工程->引用搜索 早期绑定 & 晚期绑定
Compile error:
User-defined type not defined
这样的错误
在vc中编译组件时已经注册到注册表里去了, 并且我到注册表中去查看, 确实有
相关信息在vb6中, 我也把"工程-引用"中的 Simple2 1.0 Type Library 选中了
但在vb中调用时, 还是只能用Set obj= CreateObject("Simple2.Fun") 这种写法, 即在这种写法下
程序工作正常, 可以调用com组件中的方法而用
Dim obj As New Simple2.Fun
的话就会出现"User-defined type not defined" 错误
想NEW一个实例的话,要引用DLL文件,让系统自己找对应的库文件
估计是你认为已经选了,但实际上引用列表里没有
Simple2 1.0 Type Library 真是奇怪, 还是老错误
可以使用(Simple2.Fun)或者(Simple2.Fun.1)这样的参数而且不添加引用就能运行但用New的话, 直接指明接口(Fun)才能用(不能用Simple2.Fun这样的形式)
或许用ATL创建时选择的方式不同吧,我没用聚合,呵呵.
但问题解决了就好,恭喜