万星星@豌豆荚 欢迎加入我们
一个吃软饭的男人!!!!!我只想写程序####
微博:
http://weibo.com/wanlianwen
C++博客
首页
新文章
新随笔
聚合
管理
posts - 172, comments - 1253, trackbacks - 0
VC6的MFC应用中集成COM的一个小问题
问题是这样产生的:建立一个MFC应用程序,加入ATL支持,并加入一个ATL对象,然后在程序中创建如下
CComPtr
<
IMath
>
spMath;
HRESULT hr
=
NOERROR;
hr
=
spMath.CoCreateInstance(L
"
COMInMFC.Math.1
"
);
if
(SUCCEEDED(hr))
{
spMath.Release();
}
结果总是返回“无效的字符串”。我直接把COM对象new出来,再QueryInterface是没有问题的,很明显注册表没有注册正确。稀里哗啦修改一通,还是不正确。转到VS2003、VS2005按照类似做法完全没有问题,于是我开始怀疑难道我的VC6 IDE有问题?因为我以前从来没有遇到类似问题,印象中还模糊记得以前做过类似操作没有这样的问题。转到笔记本上再试一试,还是老样子。唉!先放一下,这是昨天的问题哈!
昨天晚上睡觉还惦记这这个问题,今天早上起床,胸口闷,还是不甘心,一定找出问题所在。打开工程,直接找写注册表的位置,发现拉,在InitATL函数中有这样一段:
LPTSTR lpCmdLine
=
GetCommandLine();
//
this line necessary for _ATL_MIN_CRT
TCHAR szTokens[]
=
_T(
"
-/
"
);
BOOL bRun
=
TRUE;
LPCTSTR lpszToken
=
_Module.FindOneOf(lpCmdLine, szTokens);
while
(lpszToken
!=
NULL)
{
if
(lstrcmpi(lpszToken, _T(
"
UnregServer
"
))
==
0
)
{
_Module.UpdateRegistryFromResource(IDR_COMINMFC, FALSE);
_Module.UnregisterServer(TRUE);
//
TRUE means typelib is unreg'd
bRun
=
FALSE;
break
;
}
if
(lstrcmpi(lpszToken, _T(
"
RegServer
"
))
==
0
)
{
_Module.UpdateRegistryFromResource(IDR_COMINMFC, TRUE);
_Module.RegisterServer(TRUE);
bRun
=
FALSE;
break
;
}
lpszToken
=
_Module.FindOneOf(lpszToken, szTokens);
}
原来要注册一下啊,赶紧命令行执行一下:
D:\VC\Automation\COMInMFC\Debug\COMInMFC.exe /RegServer
然后创建对象,成功了,终于体会到:世上无难事,只怕有心人!
posted on 2006-09-01 08:18
万连文
阅读(1357)
评论(1)
编辑
收藏
引用
所属分类:
MFC
FeedBack:
#
re: VC6的MFC应用中集成COM的一个小问题
2006-09-07 19:48 |
pdkui
MFC里添加了ATL对象,在同一个工程里的话,可以在ATL对象加一个静态函数:CreateInstance(),直接返回一个指针。当然,不在一个工程里就另当别论了。
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
VC8中MFC集成ATL组件注册时注意的一个问题
未来界面应该是这样的
纯技术讨论com控件创建过程
界面终于出来一点拉
自己画的好友列表
用WLWUI库描述kugoo界面
上班半个月的总结
用MFC实现WebGUI--(CDHtmlDialog)
闲暇时间做的几个界面
转孙辉老师《十年MFC经历认识的Microsoft技术》
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
简历下载
联系我
<
2006年8月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(66)
给我留言
查看公开留言
查看私人留言
随笔分类
.NET(6)
ACDK(6)
ATL(11)
MFC(29)
richedit(9)
WTL(1)
乱七八糟(61)
模板(8)
小作品(40)
随笔档案
2013年3月 (2)
2012年9月 (2)
2012年8月 (2)
2012年7月 (2)
2012年6月 (3)
2012年5月 (2)
2011年9月 (2)
2011年8月 (1)
2011年6月 (2)
2011年5月 (4)
2011年4月 (2)
2011年3月 (2)
2010年12月 (1)
2009年9月 (1)
2009年8月 (2)
2009年7月 (2)
2009年6月 (2)
2009年5月 (1)
2009年4月 (1)
2009年1月 (1)
2008年12月 (5)
2008年11月 (2)
2008年10月 (1)
2008年9月 (7)
2008年8月 (2)
2008年3月 (3)
2008年2月 (2)
2008年1月 (3)
2007年12月 (6)
2007年11月 (1)
2007年10月 (3)
2007年9月 (1)
2007年8月 (5)
2007年7月 (5)
2007年6月 (3)
2007年5月 (5)
2007年4月 (5)
2007年3月 (4)
2007年2月 (2)
2007年1月 (2)
2006年12月 (4)
2006年11月 (8)
2006年10月 (1)
2006年9月 (9)
2006年8月 (7)
2006年7月 (10)
2006年6月 (1)
2006年5月 (2)
2006年4月 (10)
2006年3月 (3)
2006年2月 (3)
2006年1月 (2)
2005年12月 (8)
相册
new
个人相册
搜索
最新评论
1. re: 用MFC实现WebGUI--(CDHtmlDialog)
前辈好,代码下载之后怎么用啊?我生成的exe打开是空白的页面,菜单新建不知道建的啥,打开一个html页面也没有反应,我的环境是vs2010
--王同林
2. re: 使MFC变漂亮一:MFC与Flash交互示例
能不能把Flash源文件共享一下,要不然Flash端变量不知道怎么操作
--ddd
3. re: 甘特图第一版本发布
你这个附件有什么功能限制?
--xrczld
4. re: 并行编程--MPI开发入门
我是用的vs+MPICH2,用wmpiexec运行我的exe的时候,不能连接到主机是什么鬼啊。。求回复
--M琨M
5. re: 基于Chrome开源提取的界面开发框架 三(.3)
豌豆荚非常不错的应用
--mmocake
阅读排行榜
1. 基于Chrome开源提取的界面开发框架开篇(32322)
2. 用MFC实现WebGUI--(CDHtmlDialog)(25906)
3. 并行编程--MPI开发入门(19129)
4. 使MFC变漂亮二:MFC与HTML交互示例(17357)
5. FreeType2研究(16077)
评论排行榜
1. 我把初恋搞丢了(原创)(55)
2. 一个小型绘图程序(45)
3. 并行编程--MPI开发入门(42)
4. 我得C++学习心得(41)
5. 用MFC实现WebGUI--(CDHtmlDialog)(40)