万星星
一个吃软饭的男人!!!!!我只想写程序####
师夷之技以制夷 吾尝终日而思矣,不如须臾之所学也
喝碗孟婆汤,踏过奈何桥,涅槃
I've been programming since I was 21. Started with C++, looked at Java, keen on Visual Basic and Visual C++, thinking about .NET and C#.^_^,very ridiculous.
C++博客
首页
新文章
新随笔
聚合
管理
posts - 130, comments - 778, 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
万连文
阅读(662)
评论(1)
编辑
收藏
引用
所属分类:
MFC
FeedBack:
#
re: VC6的MFC应用中集成COM的一个小问题
2006-09-07 19:48 |
pdkui
MFC里添加了ATL对象,在同一个工程里的话,可以在ATL对象加一个静态函数:CreateInstance(),直接返回一个指针。当然,不在一个工程里就另当别论了。
回复
更多评论
刷新评论列表
标题
姓名
主页
验证码
*
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
VC8中MFC集成ATL组件注册时注意的一个问题
未来界面应该是这样的
纯技术讨论com控件创建过程
界面终于出来一点拉
自己画的好友列表
用WLWUI库描述kugoo界面
上班半个月的总结
用MFC实现WebGUI--(CDHtmlDialog)
闲暇时间做的几个界面
转孙辉老师《十年MFC经历认识的Microsoft技术》
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
简历下载
联系我
<
2006年4月
>
日
一
二
三
四
五
六
26
27
28
29
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
1
2
3
4
5
6
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(35)
给我留言
查看公开留言
查看私人留言
随笔分类
.NET(6)
ACDK(6)
ATL(11)
MFC(29)
WTL(1)
乱七八糟(48)
模板(8)
小作品(24)
随笔档案
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: 终于治好了
已经可以了。我编译2.2.1就没有问题,最新的2.37有些问题,可能有比较大的更新吧。
多谢了,非常感谢。
--test
2. re: 终于治好了
评论内容较长,点击标题查看
--万连文
3. re: 终于治好了
评论内容较长,点击标题查看
--test
4. re: 终于治好了
评论内容较长,点击标题查看
--test
5. re: 转孙辉老师《十年MFC经历认识的Microsoft技术》[未登录]
肤浅啊,会工具的使用而已!
--charles
阅读排行榜
1. 我得C++学习心得(5657)
2. 并行编程--MPI开发入门(5027)
3. 用MFC实现WebGUI--(CDHtmlDialog)(4294)
4. 一个小型绘图程序(4144)
5. FreeType2研究(3576)
评论排行榜
1. 我把初恋搞丢了(原创)(52)
2. 一个小型绘图程序(42)
3. 并行编程--MPI开发入门(32)
4. 我得C++学习心得(27)
5. 用MFC实现WebGUI--(CDHtmlDialog)(24)