Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 初始化COM对象时类型不匹配_C#_Excel_Vba_Dll_Com - Fatal编程技术网

C# 初始化COM对象时类型不匹配

C# 初始化COM对象时类型不匹配,c#,excel,vba,dll,com,C#,Excel,Vba,Dll,Com,我有一个Excel VBA模块调用C#COM dll 有时,当我在VBA中单步执行调试器时,当我初始化COM对象时,会出现类型不匹配的情况,如下所示 If(IsEmpty(cm))那么 设置cm=CreateObject(“aimd.CMAdaptor”) 如果结束 我可以在VBA中添加一个断点,并在cm变量中添加一个监视,然后发现类型与我实例化的类型不匹配。该类型用于我尝试创建的对象中的属性。指向的对象显然是由我实例化的“aimd.CMAdaptor”对象创建的,我只是没有得到我指定的根对象

我有一个Excel VBA模块调用C#COM dll

有时,当我在VBA中单步执行调试器时,当我初始化COM对象时,会出现类型不匹配的情况,如下所示

If(IsEmpty(cm))那么
设置cm=CreateObject(“aimd.CMAdaptor”)
如果结束
我可以在VBA中添加一个断点,并在cm变量中添加一个监视,然后发现类型与我实例化的类型不匹配。该类型用于我尝试创建的对象中的属性。指向的对象显然是由我实例化的“aimd.CMAdaptor”对象创建的,我只是没有得到我指定的根对象,只有子对象


由于这是一个COM对象,我想知道我的更新是否使用了不匹配的regasm数据,或者导致它在错误的位置查找对象。我不断地重建它以进行调试,并将其添加到调用regasm的安装程序中作为构建操作。

结果是一个愚蠢的错误。。。我正在复制允许您选择类名称的属性,如VBA端所示

[ProgId(“aimd.CMAdaptor”)]


这是位于两个不同的类。显然,当你这样做的时候,没有什么抱怨。我不知道为什么它选择了一个而不是另一个,但是在更新了不正确的属性之后,一切都正常了。

结果是一个愚蠢的错误。。。我正在复制允许您选择类名称的属性,如VBA端所示

[ProgId(“aimd.CMAdaptor”)]

这是位于两个不同的类。显然,当你这样做的时候,没有什么抱怨。我不知道为什么它会选择一个而不是另一个,但是在更新了不正确的属性之后,一切都正常了