com技术组件第7章,用vs2005编译示例代码,com注册不成功。

本文主要探讨了在Visual Studio 2005(VS2005)中编译COM技术组件时遇到的注册不成功问题。常见原因包括权限不足和编译配置错误。解决方法包括检查和调整项目设置,如在预处理器定义中添加“_USRDLL”和项目名_EXPORTS,并确保正确链接DEF文件。同时,介绍了模块定义(.def)文件的作用以及如何通过调整.vcproj文件来确保正确的编译和链接选项。此外,还提到了VC6与VS2005的IDE设置差异,如字体配置、制表符设置和行宽标准。最后,提醒注意日志文件以排查错误。
摘要由CSDN通过智能技术生成

1.先排除你的权限问题,只要网上搜索这个问题,就会给你说权限问题。
2.如果是自己建的工程,很大可能是编译的问题。虽然总是提示成功,但是模块文件(.def)文件没有加载连接,就会生成一个普通的dll文件,不能注册。因为DLLRegisterServer没有被正确的连接到.dll中。
解决方案:
   1、将项目->C/C++ ->预处理器 -> 预处理定义加上“;_USRDLL;项目名_EXPORTS",还有链接器 -> 输入 ->项目的DEF文件。
   2、根据Linux的makefile文件,可以知道,vs2005一定也有一个类似的文件,用来编译连接的,就是大名鼎鼎的.vcproj文件,在 网上下载一个能成功注册的com模板,查看里面的配置。 PreprocessorDefinitions这一个字段,和ModuleDefinitionFile这个字段。模仿着写。
实际上,两个方法的主要目的就是将你的这些文件,用正确的命令去解释翻译。也就是以前的大牛一步一步去写的DOS命令。各种编译连接选项。
补充知识:
1、_MANAGED   MS中的C++/CLI 编译连接命令
2、模块定义
模块定义 (.def) 文件为链接器提供有关被链接程序的导出、属性及其他方面的信息。生成 DLL 时,.def 文件最有用。由于存在可代替模块定义语句使用的链接器选项,通常不需要 .def 文件。也可以将 __declspec(dllexport) 用作指定导出函数的手段。在链接器阶段可以使用 /DEF(指定模块定义文件)链接器选项调用 .def 文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值