无法引用COM组件库

ErikLiu 2007-09-28 04:46:26
VS2005环境,用ATL开发组件。

1. 生成一个组件库vgsCarto,里面用到了IXMLDOMNode接口。
2. 在C#、或vb.net的工程里引用组件库vgsCarto.
3. 提示:“无法在对象浏览器中查看此项目,因为此项目不可用或尚未生成。请确保此项目可用并已生成。”
4. 出现如下警告:

警告 173 “IXMLDOMProcessingInstruction.get_ownerDocument”的至少一个参数不能由运行时封送拆收器进行封送处理。因此,此类参数将作为指针进行传递,并可能需要不安全代码进行操作。 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets
警告 174 “IXMLDOMEntityReference.get_childNodes”的至少一个参数不能由运行时封送拆收器进行封送处理。因此,此类参数将作为指针进行传递,并可能需要不安全代码进行操作。 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets
警告 175 “IXMLDOMEntityReference.get_attributes”的至少一个参数不能由运行时封送拆收器进行封送处理。因此,此类参数将作为指针进行传递,并可能需要不安全代码进行操作。 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets
警告 176 “IXMLDOMEntityReference.get_ownerDocument”的至少一个参数不能由运行时封送拆收器进行封送处理。因此,此类参数将作为指针进行传递,并可能需要不安全代码进行操作。 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets
警告 177 “ResolveComReference”任务意外失败。
System.IO.FileNotFoundException: 未能加载文件或程序集“Interop.vgsGeometryLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
文件名:“Interop.vgsGeometryLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”

Server stack trace:
在 System.Signature._GetSignature(SignatureStruct& signature, Void* pCorSig, Int32 cCorSig, IntPtr fieldHandle, IntPtr methodHandle, IntPtr declaringTypeHandle)
在 System.Signature.GetSignature(SignatureStruct& signature, Void* pCorSig, Int32 cCorSig, RuntimeFieldHandle fieldHandle, RuntimeMethodHandle methodHandle, RuntimeTypeHandle declaringTypeHandle)
在 System.Signature..ctor(RuntimeMethodHandle methodHandle, RuntimeTypeHandle declaringTypeHandle)
在 System.Reflection.RuntimeMethodInfo.get_Signature()
在 System.Reflection.RuntimeMethodInfo.get_ReturnType()
在 System.Runtime.InteropServices.TCEAdapterGen.EventSinkHelperWriter.DefineEventMethod(TypeBuilder OutputTypeBuilder, MethodInfo Method, Type DelegateCls, FieldBuilder fbDelegate)
在 System.Runtime.InteropServices.TCEAdapterGen.EventSinkHelperWriter.Perform()
在 System.Runtime.InteropServices.TCEAdapterGen.TCEAdapterGenerator.Process(ModuleBuilder ModBldr, ArrayList EventItfList)
在 System.Runtime.InteropServices.TypeLibConverter.ConvertTypeLibToAssembly(Object typeLib, String asmFileName, TypeLibImporterFlags flags, ITypeLibImporterNotifySink notifySink, Byte[] publicKey, StrongNameKeyPair keyPair, String asmNamespace, Version asmVersion)
在 Microsoft.Build.Tasks.TlbReference.GenerateWrapper(ComReferenceWrapperInfo& wrapperInfo)
在 Microsoft.Build.Tasks.ResolveComReference.ResolveComReferenceTlb(ComReferenceInfo referenceInfo, String outputDirectory, String refName, Boolean topLevelRef, ComReferenceWrapperInfo& wrapperInfo)
在 Microsoft.Build.Tasks.ResolveComReference.ResolveComClassicReference(ComReferenceInfo referenceInfo, String outputDirectory, String wrapperType, String refName, Boolean topLevelRef, ComReferenceWrapperInfo& wrapperInfo)
在 Microsoft.Build.Tasks.ResolveComReference.ResolveReference(ComReferenceInfo referenceInfo, String outputDirectory, ITaskItem& referencePathItem)
在 Microsoft.Build.Tasks.ResolveComReference.ResolveReferenceAndAddToList(ComReferenceInfo projectRefInfo, ArrayList resolvedReferenceList, ArrayList moduleList)
在 Microsoft.Build.Tasks.ResolveComReference.Execute()
在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
在 System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
在 System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
在 Microsoft.Build.Framework.ITask.Execute()
在 Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)

警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets 1364
警告 178 未能找到引用的组件“vgsCartoLib”。
...全文
491 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞虎在天 2008-04-28
  • 打赏
  • 举报
回复
我也想知道啊!没人回答吗?
ErikLiu 2007-10-16
  • 打赏
  • 举报
回复
是这样:
D组件引用C组件,
C组件引用B组件,
B组件引用A组件,


在二次开发中,引用D组件,VS2005会把C B A等关联组件一并引入。
可是,在级数多时,A组件引入就会报错了。
ErikLiu 2007-10-16
  • 打赏
  • 举报
回复
在VC下都没问题,就是VS2005编译环境中,引入
ErikLiu 2007-10-09
  • 打赏
  • 举报
回复
这么长时间了,还没人啊?
是不是用VC ATL COM技术的人很少啊??
xu_jian 2007-10-09
  • 打赏
  • 举报
回复
你那组件库在vc下可用否?
关于Vue· 美籍华人尤雨溪所作,文档健全,生态完整,与脸谱的React各领前端半边天下;· 相对于React,Vue相对于初学者更容易上手;· 目前统治C端市场的跨平台框架uni-app也是基于Vue的基础技术栈进行开发;· Vue与React在框架设计上有极高的相似度,上手Vue以后,我们可以轻松过渡到React学习;课程特色· 零基础教学,由浅入深,轻松诙谐,物超所值;· 基于官方文档教学,在学习Vue的同时学习阅读文档的方式,授人以鱼更授人以渔;· 课程包含Vuex和Vue-Router最新版内容,即所谓【Vue全家桶开发】;· 完整包含Vue3全部内容;· 含京东商城完整项目从零到一开发过程;· 含最新版@vue/cli的开发和生产环境打包流程;· 含Vite两套脚手架的开发和生产环境打包流程;· 含项目部署上线全流程;· 含自定义组件高阶课程,带你从零到一完成电梯组件开发与发布;· 附Vue高频面试题50余道,OFFER轻松斩获;课程收益· 掌握Vue2+Vue3的框架基础知识;· 掌握Vue全家桶项目开发+打包+上线全流程;· 掌握自定义组件技巧;· 掌握Vue高频面试题回答技巧;课程关键词Vue2 Vue3 Vuex Vue-RouterVue项目 Vue全家桶@vue/cli Vite 项目打包 项目上线 自定义组件 Vue面试题写在最后就连太阳光照到地球都需要8分钟,所以,你也需要时间,耐心一点,持续修炼。 

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧