我用C#写了个com,想在vb里面使用,但是我的类是单例(singleton)模式的,也就是说不能直接new一个对象,只能通过调用类的一个静态方法geInstance来获得一个实例,可是在VB里面应该怎么调用com里面一个类的静态方法?
解决方案 »
- 关于mshflexgrid的问题
- --------<求教用API如何实现类似Align属性>-------
- 如何在窗体上显示不规则(镂空)图片(jpg或png),让镂空部分能看到窗体下面的桌面或其他程序
- 想用VB6。0编一个WIN32下的turbo c的程序
- 经别人推荐,来这里求助:工作中遇到将多张内容项相同的excel表格导入sqlserver的问题,请教大家
- 有关于adodc的怪问题,希望能帮帮新手!
- SQl 语句问题
- 求解,急!!!!!!!!!!!菜鸟问题,大家帮忙!!!!!!!!!
- 请问一条SQL语句,先谢谢了!!!!!!
- javascript或vbscript里如何执行一个exe文件?????
- 一张600*600的bmp图像,打印在A4纸上实际的边长是多少?50分
- 把一个文件拖到form里得到其路径该怎么做
set ***** as new ++++对不起,忘了怎样下了
好像是先要为你写的COM创建一个对象
然后调用这个对象
你试一下
仅供参考(我的VB坏了)
如果你是“不可创建的单实例”,那么你就必须要用你的C先在内存中创建实例,然后再调用CreateOBject.如果还不行,把你的DLL发过来,我帮你试验。
[email protected]
版本 2
请参阅
--------------------------------------------------------------------------------描述
返回对文件中 Automation 对象的引用。
语法
GetObject([pathname] [, class])
GetObject 函数的语法有以下参数: 参数 描述
pathname 可选。字符串,包含待检索对象的文件的完整路径和名称。如果省略 pathname 则必须有 class。
class 可选。字符串,对象的类。
class 参数的语法格式为 appname.objectype,其中包括以下部分: 部分 描述
appname 必选。字符串,提供对象的应用程序名称。
objectype 必选。字符串,要创建的对象的类型或类。 说明
使用 GetObject 函数可以访问文件中的 Automation 对象,而且可以将该对象赋值给对象变量。使用 Set 语句将 GetObject 返回的对象赋值给对象变量。例如: Dim CADObject
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")在执行上述代码时,就会启动与指定路径名相关联的应用程序,同时激活指定文件中的对象。如果 pathname 是零长度字符串 (""),GetObject 返回指定类型的新对象实例。如果省略 pathname 参数,GetObject 将返回指定类型的当前活动对象。如果没有指定类型的对象,就会出现错误。
某些应用程序允许只激活文件的一部分,方法是在文件名后加上一个惊叹号 (!) 以及用于标识要激活的文件部分的字符串。有关创建这种字符串的详细信息,请参阅创建对象的应用程序的有关文档。 例如,在绘图应用程序中,一个存放在文件中的图可能有多层。可以使用下述代码来激活图 SCHEMA.CAD 中的某一层:
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")如果没有指定对象的类,则 Automation 会根据所提供的文件名,确定要启动的应用程序以及要激活的对象。但是,有些文件可能支持多个对象类。例如,图可能支持三种不同类型的对象:Application 对象、Drawing 对象和 Toolbar 对象,所有这些都是同一个文件中的一部分。使用可选的 class 参数可以指定文件中要激活的对象。例如: Dim MyObject
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
在上述样例中,FIGMENT 是绘图应用程序的名称,而 DRAWING 则是它支持的一种对象类型。对象被激活之后,就可以在代码中使用所定义的对象变量来引用它。在前面的例子中,可以使用对象变量 MyObject 访问新对象的属性和方法。例如:
MyObject.Line 9, 90
MyObject.InsertText 9, 100, "嗨,你好!"
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"
--------------------------------------------------------------------------------
注意 在对象的当前实例存在,或者要用已加载的文件创建对象时,请使用 GetObject 函数。如果没有当前实例,并且不准备使用已加载的文件启动对象,请使用 CreateObject 函数。 如果对象已注册为单个实例的对象,则无论执行多少次 CreateObject,都只能创建该对象的一个实例。若使用单个实例对象,当使用零长度字符串 ("") 语法调用时,GetObject 总是返回同一个实例,而如果省略 pathname 参数,则会出现错误。