关于api函数 CreateObject 参数的问题,内附例子
在vb,动态创建引用对象很方便,
但是引用一些不常用的对象时,里面的参数应该如何填写?
下面的例子应该如何更改
'正则表达式
dim obj1
dim obj2
dim str1 as MatchCollection
dim ml1 as matchcollection
set obj1 = CreateObject("VBscript.RegExp") '动态创建 regexp 对象
str1 = "asfasdfafd"
obj1.pattern = "a"
set ml1 = obj1.Excute(str1)
'如果我想把 obj2 动态引用 MatchCollection 对象应该如何写 ?
'我试过 set obj2 = CreateObject("VBscript.MatchCollection") ,可以这样没有用
'而且以后是动态引用其他不常用的对象,应该如果找他的名称(即 "VBscript.RegExp" 这样的)
'可不可以用 createobject("########-####-####-####-############") 这样的?
[解决办法]
我不清楚LZ为什么说加了引用会有版本问题,事实上,当添加引用后,编译时按引用的部件的guid来编译,不同的版本部件的guid是不同的。
至于是否可以使用createobject来创建,要看部件的设计规范,比如你说的word对象,
word.application是可以使用CreateObject创建,但是document对象则不可以,必须通过Appliction的对象得到引用;但是,一个部件至少有一个类是可以createobject的。事实上,你自己创建部件也可以这样规划,比如,你创建的类class1是可以createobject,但是class2必须通过class1.add来添加,你只要将class1的instancing属性设置为mutiuse,而class2的instancing属性设置为publicnocreatable,这样,你的部件的用户,对应class1可以使用createobject创建,但class2则不可以。
你的问题,看来就在obj2的代码后面加个备注吧