一个工程的odl文件是什么意思?引入ActiveX的吗?如果新建一个工程,如何使用这个odl呢?

chen18s 2005-04-19 04:48:50
如题。
我有一个例子工程,使用Ra连接本地Btrieve数据库,该例子中有几个类定义在P3Engine.cpp和p3Engine.h文件中,但这几个类的方法实现全是以下这两种形式的:
------------------------------------------------
LPDISPATCH Project::GetAutocostRules()
{
LPDISPATCH result;
GetProperty(0x12, VT_DISPATCH, (void*)&result);
return result;
}

void Project::SetAutocostRules(LPDISPATCH propVal)
{
SetProperty(0x12, VT_DISPATCH, propVal);
}
--------------------------------------------------

请问这是ActiveX调用吗?我在工程中文件视图还看到了sample.odl文件,这个文件的内容是
---------------------------------------------
[ uuid(49239EC1-07C4-11D0-AE5E-00AA00BB718D), version(1.0) ]
library Sample
{
importlib("stdole32.tlb");

//{{AFX_APPEND_ODL}}
};
----------------------------------------------

importlib是干什么的? stdole32.tlb又是什么?如果我要重新写一个使用到例子中功能的程序,该如何加入这个odl文件到工程中,使我的工程中那几个类的方法能够正常使用呢???
谢了
...全文
466 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawndu 2005-04-20
  • 打赏
  • 举报
回复
你用vc直接加入控件就行,那些库不用的,要不就违反COM的原则了
chen18s 2005-04-20
  • 打赏
  • 举报
回复
再次求救
谢谢楼上的,那么我要在新建工程里使用这些方法,也需要导入这个库?怎么导入才能使我的新工程可以象这个例子程序一样运行?我的意思是说如何使用这个例子工程中的COM控件或ActiveX控件呢?
chen18s 2005-04-20
  • 打赏
  • 举报
回复
问题是,那个例子程序是一个叫P3的项目进度管理软件提供的。在已安装P3的机器上能够运行,肯定是使用到了控件但我却不清楚是哪一个.....
这个例子程序既然能正常运行,且没有在资源视图里直接插入该控件,我也不太理解ActiveX/COM这些东西...就当是多学学东西了~~拜托了
dawndu 2005-04-19
  • 打赏
  • 举报
回复
GetProperty这些是mfc包装了来支持COM接口IDispatch的,odl是一个像idl(接口定义语言)的东西,用来编译类型库之类的东西的。stdole32.tlb是标准类型库,importlib就是导入了。建议看看COM的使用方面的书

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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