描述:
请问使用C++做COM
不使用其他的类库,这样是不是要建立def文件的
解决方案1:
def是引出dll全局函数(符号名字映射)用的,idl是定义接口用的,idl文件编译后主要是生成接口结构的C/C++头文件(也可以生成其他语言用的包含接口信息的文件),如果你有这些文件了,idl就不需要了,可以说有了idl文件就确定了整个com组件行为,idl文件的编写是com组件设计最核心的部分。
解决方案2:进程内组件就是一个DLL阿,你只要把那些类工厂,自注册之类的东西都实现了就可以用了阿
解决方案3: 不需要DEF文件的啊,
按照你自己的设置, 可以需要其它的MFC类库, 或者其它的支持文件
http://www.codeproject.com/com/comintro2.asp
这篇是完全手动实现的COM组件,相信会对你有所帮助的
XXandOO(麦猪)说的对
DEF文件是模块定义文件(Module Definition File)。它允许引出符号被化名为不同的引入符号。
//YOURCOM.def文件
; YOURCOM.def : Declares the module parameters.
LIBRARY "YOURCOM.DLL"
EXPORTS
DllCanUnloadNow @1 PRIVATE
DllGetClassObject @2 PRIVATE
DllRegisterServer @3 PRIVATE
DllUnregisterServer @4 PRIVATE
DllUnregisterServer 这是函数名称 @4<――这是函数序号 PRIVATE