晕,还是有问题,再问关于Inside COM的

HelloDan HelloDan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
还是Inside COM第8章聚合的例子。我按照各们好友教我的方法,最后是能导出两个组件,cmpnt1.dll和cmpnt2.dll了。我是建一个cmpnt1的workspace,里面加入所有的工程,分别有,cmpnt1,cmpnt2和测试用的例子client三个工程,编译的输出都在debug文件夹下。

我编译出了cmpnt1.dll后编译cmpnt2有问题,是关于那个*.sbr文件的,我把debug下除cmpnt1.dll的所有东西都删除了,再编译,可以得到cmpnt2.dll. 然后的client工程编译时也要删除上面所说的文件,只留下cmpnt1.dll和cmpnt2.dll。最后得到了client.exe。 我想调试跟踪程序的过程的,但发现
HRESULT hr = ::CoCreateInstance(CLSID_Component1,
NULL,
CLSCTX_INPROC_SERVER,
IID_IX,
(void**)&pIX) ;
这里面失败了。 我想可能是我没有注册DLL吧。就用了书上带的那个Register.bat注册。

@echo off
rem
rem Register.bat
rem Registration file for Chapter 8 Example 2
rem
echo on
regsvr32 -s Cmpnt1.dll
regsvr32 -s Cmpnt2.dll

在命令行里面在debug文件夹下运行了。

D:\develop\InsideCom\Cmpent1\Debug>Register.bat

D:\develop\InsideCom\Cmpent1\Debug>regsvr32 -s Cmpnt1.dll

D:\develop\InsideCom\Cmpent1\Debug>regsvr32 -s Cmpnt2.dll

D:\develop\InsideCom\Cmpent1\Debug>

但我再试了一下,运行client.exe,也是调试着进的,还是在::CoCreateInstance这里失败了。


我上面的过程到底错在了哪里呢? 麻烦会的朋友帮忙一下。 谢谢!
...全文

相关推荐

评论 24
收藏 已收藏
分享
返回顶部
HelloDan
ATL 3,248 成员 48,530 内容