我有一个COM Callable Wrapper,到目前为止一直在运行。
现在,当我尝试编译依赖于它的VB6应用程序时,我得到了“用户定义的类型未定义”错误。已经改变的事情包括将COM Callable Wrapper从.Net Framework 2移到4并且我现在使用的是VS2013而不是VS2010。代码有一些变化,但没有一个我可以看作负责。
当我查看oleview.exe中生成的类型库并将其与之前版本进行比较时,我看到命名空间(带有下划线)已经预先添加到我的两个coclass中,以便我现在拥有coclass CompanyName_Compatibility_Field
之前的位置我刚才coclass Field
,我认为这是我遇到问题的原因。
我一直有对经典ADODB主互操作程序集的引用,但现在我在生成的类型库中有一个importlib("msado15.dll");
语句,之前我没有,而typelib现在包含许多ADODB枚举类型的枚举定义,其中以前它没有。
ADODB是为什么命名空间现在被添加到我的Field
对象的原因,有没有办法可以防止这种情况并从类型库中排除ADODB内容?
答案 0 :(得分:0)
我更改了ADODB引用的嵌入互操作类型属性和Active Reports引用(也有Field
对象),现在我的VB6应用程序已编译。
我承认我不知道这个属性。在从框架2移动到4之后重新添加一些引用时,它必须已经改变。