CoCreateInstanceEx返回失败,在线等

thesuper 2007-06-02 01:34:18
IADOProcess *pIExitWindow = NULL;
IID iid = __uuidof(pIExitWindow);
qi.pIID = &iid;
qi.pItf = NULL;
hr = CoCreateInstanceEx(__uuidof(ADOProcess), NULL, CLSCTX_SERVER, &si, 1, &qi);

1、结果hr=-2147221008.返回失败。大概有什么原因引起的?
2、调试过程中iid 为 2118889A-A71F-4242-B0A3-B80A095E12AA,而不是我想要的IID_IADOProcess,为什么??怎么解决?
...全文
810 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2007-06-07
  • 打赏
  • 举报
回复
获取CoInitializeEx返回值,判断具体失败原因
thesuper 2007-06-05
  • 打赏
  • 举报
回复
我是楼主
CoInitializeEx(NULL, COINIT_MULTITHREADED);我在程序里有的。
问题是:在本机上都是能通过的。但是远程机子不行。

我从网上下了个下了个例子,经过DCOM配置后,CoCreateInstanceEx等等返回都是成功的;远程也可以。
我做的和网上的这个例子,DCOM配置一样的。而我自己创建的就是不行。CoCreateInstance远程Ex返回失败。
我用VC建的COM的顺序是这样的:Service(EXE)->New ATL Object->Simple Object->输入名字,属性是默认的。->添加方法
是不是哪里有错误?或则还要修改什么地方?

初学,呵呵。。请各位帮忙
HELP ME
healer_kx 2007-06-04
  • 打赏
  • 举报
回复
那你初始化的套间对嘛? 是单线程套间的嘛?
grantchan 2007-06-04
  • 打赏
  • 举报
回复
先调用CoInitialize()
Raxxxer 2007-06-04
  • 打赏
  • 举报
回复
_com_error::ErrorMessage直接打印出来就是。
-2147221008 转成16进制是0x800401f0
这是一个系统错误,用Error Lookup察看显示: 尚未调用 CoInitialize。
解决的办法是在初始化时调用CoInitialize。
thesuper 2007-06-04
  • 打赏
  • 举报
回复
hr = CoCreateInstanceEx(__uuidof(ADOProcess), NULL, CLSCTX_SERVER, &si, 1, &qi);
总是失败!!
thesuper 2007-06-04
  • 打赏
  • 举报
回复
一个服务器程序,一个客户端程序。放在同一台机子,行的。
而分别放在不同机子上则不行。DCOM配置没问题的。
zoulijun 2007-06-04
  • 打赏
  • 举报
回复
同样的程序在不同的机器上不同的结果吗?那可能是有些dll不同吧
IMGGTOO 2007-06-04
  • 打赏
  • 举报
回复
MARK
thesuper 2007-06-04
  • 打赏
  • 举报
回复
DCOM配置一样。自己做的CoCreateInstanceEx,返回失败。而网上的例子能通过。哪里有问题呢?
thesuper 2007-06-04
  • 打赏
  • 举报
回复
我是楼主
CoInitializeEx(NULL, COINIT_MULTITHREADED);我在程序里有的。
问题是:在本机上都是能通过的。但是远程机子不行。

我从网上下了个下了个例子,经过DCOM配置后,CoCreateInstanceEx等等返回都是成功的;远程也可以。
我做的和网上的这个例子,DCOM配置一样的。

我用VC建的COM的顺序是这样的:Service(EXE)->New ATL Object->Simple Object->输入名字,属性是默认的。->添加方法
是不是哪里有错误?或则还要修改什么地方?

初学,呵呵。。请各位帮忙

xfan_hsl 2007-06-04
  • 打赏
  • 举报
回复
CLSCTX_SERVER 改成 CLSCTX_ALL看行不?如果可以话就改为CLSCTX_LOCAL_SERVER
thesuper 2007-06-02
  • 打赏
  • 举报
回复
CoInitializeEx(NULL, COINIT_MULTITHREADED);

HRESULT hr = CoInitializeSecurity(NULL, -1, NULL, NULL,RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IDENTIFY, NULL, EOAC_NONE, NULL);
我都执行过的
CoInitializeSecurity也返回成功
  • 打赏
  • 举报
回复
先初始化一下 COM运行环境
  • 打赏
  • 举报
回复
尚未调用 CoInitialize。

3,245

社区成员

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

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