CoInitializeEx,PreProcessor definitions => 加上,_WIN32_DCOM

*** C2039: 'CoInitializeEx' : is not a member of '`global namespace'' ****

楼主sydt(亲情六处) 2006-06-14 17:55:52 在 VC/MFC / 基础类 提问

VC6   程序中调用   CoInitializeEx函数  
  编译错误如下  
  D:/NicOPCServer/ServerClient/MainFrm.cpp(199)   :   error   C2039:   'CoInitializeEx'   :   is   not   a   member   of   '`global   namespace''  
   
  产生错误的CPP已经包含相关头文件了,查了相关帖子,未解决!  
  //   MainFrm.cpp   :   implementation   of   the   CMainFrame   class  
  //  
   
  #ifndef   _WIN32_DCOM  
    #define   _WIN32_DCOM     //   WinNT   4.0   or   Win95   w/DCOM  
  #endif  
  #define   _WIN32_WINNT   0x0500  
  #include   <ole2.h>  
   
  #include   "stdafx.h"  
  #include   <objbase.h>  
  #include   <atlbase.h>  
  大家帮忙!  
  问题点数:60、回复次数:10Top

src="http://topic.csdn.net/Include/Board.htm?Tags=" frameborder="0" scrolling="no">

1 楼seu07201213(【_】〖汪洋中的一片叶子〗≈^︵^≈)回复于 2006-06-14 18:06:45 得分 10

Project=>Settings=>C/C++=>PreProcessor   definitions   =>   加上,_WIN32_DCOMTop

2 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-06-14 21:49:40 得分 30

#ifndef   _WIN32_DCOM  
  #define   _WIN32_DCOM   //   WinNT   4.0   or   Win95   w/DCOM  
  #endif  
  #define   _WIN32_WINNT   0x0500  
   
   
  这些代码写在stdafx.h中?Top

3 楼sydt(亲情六处)回复于 2006-06-15 12:41:25 得分 0

To:seu07201213(汪洋中的一片叶子),Project=>Settings=>C/C++=>PreProcessor   definitions   =>   加上,_WIN32_DCOM  
  d:/nicopcserver/serverclient/mainfrm.cpp(5)   :   warning   C4005:   '_WIN32_DCOM'   :   macro   redefinition  
  ...  
   
  To:DentistryDoctor(MVP称号也不能顶上缺失的文凭(厚积薄发))    
  上述代码写在用到的API函数的CPP文件的前面。  
  我在一个已有的工程中增加一个和COM相关的操作,引入一些代码,编译错误!  
  D:/NicOPCServer/ServerClient/MainFrm.cpp(199)   :   error   C2039:   'CoInitializeEx'   :   is   not   a   member   of   '`global   namespace''  
  ...  
  帮忙!!!Top

4 楼seu07201213(【_】〖汪洋中的一片叶子〗≈^︵^≈)回复于 2006-06-15 12:55:43 得分 20

既然macro   redefinition,就把mainfrm.cpp(5)   那段去掉吧。。Top

5 楼sydt(亲情六处)回复于 2006-06-15 13:05:23 得分 0

To:seu07201213(汪洋中的一片叶子)    
  我试试!!!Top

6 楼sydt(亲情六处)回复于 2006-06-15 15:55:14 得分 0

To:DentistryDoctor(MVP称号也不能顶上缺失的文凭(厚积薄发))    
  现在编译到时通过了,但  
  //   COM   initialize  
  hr   =   ::CoInitializeEx(NULL,COINIT_MULTITHREADED);   //   setup   COM   lib  
  //   new  
  if   (hr   !=   S_OK)  
  { if   (hr   ==   S_FALSE)  
  {  
  MessageBox(NULL,   "COM库已经初始化",   "COM   Error",   MB_OK);  
  }  
  else  
  {  
  MessageBox(NULL,   "COM库初始化失败",   "COM   Error",   MB_OK); //   当前产生错误流程  
                                                        //   ??????     2006.06.15    
  }  
  }  
  运行产生错误!!! Top

7 楼sydt(亲情六处)回复于 2006-06-15 17:46:34 得分 0

hr   =   ::CoInitializeEx(NULL,   COINIT_APARTMENTTHREADED);  
  运行可以成功!  
      COINIT_APARTMENTTHREADED   =   0x2,     //   Apartment   model  
      COINIT_MULTITHREADED           =   0x0,     //   OLE   calls   objects   on   any   thread.  
  区别是什么?Top

8 楼bbs008()回复于 2006-06-19 14:01:31 得分 0

看看有关com的书籍就知道了。Top

9 楼sydt(亲情六处)回复于 2006-06-19 15:07:04 得分 0

TO:bbs008()   帮忙分析一下  
  //   COM   initialize  
  hr   =   ::CoInitializeEx(NULL,COINIT_MULTITHREADED);   //   setup   COM   lib  
  用这个参数:COINIT_MULTITHREADED初始化失败的原因么?Top

10 楼sydt(亲情六处)回复于 2006-06-22 13:30:53 得分 0

问题转移了!!  
  感谢大家!!!  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值