调用COM库出现问题,求救.

sboom 2005-02-02 10:29:15
VC7,好像是 DECLARE_PROTECT_FINAL_CONSTRUCT() 没定义.

错误报告指在这一行.
DECLARE_PROTECT_FINAL_CONSTRUCT()
这行本身不是这个工程里的文件的,是COM库那个工程里的一个头文件里的.

错误报告内容是
f:\projects\amyayl\AccessControl.h(46): error C2146: 语法错误 : 缺少“;”(在标识符“HRESULT”的前面)
f:\projects\amyayl\AccessControl.h(46): warning C4183: “DECLARE_PROTECT_FINAL_CONSTRUCT”: 缺少返回类型;假定为返回“int”的成员函数


我添加的代码只有
#include "F:\\projects\\amyayl\\_amyayl_i.c"
#include "F:\\projects\\amyayl\\AccessControl.h"

...
::CoInitializeEx(0,0);
IAccessControl *pi=NULL;
HRESULT hre=::CoCreateInstance( CLSID_CAccessControl,NULL,CLSCTX_INPROC_SERVER,IID_IAccessControl,reinterpret_cast<void**>(&pi));
::CoUninitialize();
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cline 2005-02-15
  • 打赏
  • 举报
回复
包含的文件错了!


AccessControl.h是你实现接口的类吧?

你应当包含IDL文件经MIDL编译产生的那个头文件。如果你用的是,net,那右键*.idl文件,点击属性,看它给你生成的头文件是哪个文件.
TTLOVEVBNET 2005-02-04
  • 打赏
  • 举报
回复
你試一試把amyayl_i.c和AccessControl.h,amyayl_i.h拷到你的工程文件夾中,在

#include "F:\\projects\\amyayl\\_amyayl_i.c"
#include "F:\\projects\\amyayl\\AccessControl.h"
TurkeyTangYu 2005-02-04
  • 打赏
  • 举报
回复
#include "F:\\projects\\amyayl\\_amyayl_i.c"
应该不用加入这一行代码
sinall 2005-02-03
  • 打赏
  • 举报
回复
看是不是应该这样?
#include "F:\\projects\\amyayl\\_amyayl_i.c"
#include "F:\\projects\\amyayl\\_amyayl.h"

3,245

社区成员

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

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