![](image/doc.gif)
localvar:好像有个bug,在vs2003中,CString属于Shared Visual C++ Classe, 在atl和mfc中都有,用mfc的话要include
,用atl的话include。所以就谈不上“悄悄地、秘密地、不要告诉别人(特别是别告诉微软),把 MFC 中的 CString 源码拿过来用;”
(发表于2005-7-12 13:38:00)
wjjssnew:To: 楼下的..
哥们,你一点幽默感都没有!!
(发表于2005-7-12 19:33:00)
xmxjh:咋就用的VC.NET 2003,哈!多谢周全的考虑!
(发表于2005-7-12 21:22:00)
NeverMindEx:考虑周全, 心细之人哪~!
(发表于2005-7-13 8:48:00)
duckbill_panpan:太感谢了
(发表于2005-7-14 21:58:00)
localvar:to wjjssnew:
怎么说我没有幽默感呢?技术文章的幽默应以准确为前提,而且与(五)相比,那一段文字丝毫没有改动,肯定是不太准确的("五"里面的这段话没有任何问题)。而且我个人很喜欢杨老师的文章,很生动、也很有幽默感,我只是觉得这里不太准确.
(发表于2005-7-16 6:36:00)
wjjssnew:..................
服了
(发表于2005-7-19 14:09:00)
mtsh:顶!顶!还是顶!杨老师文如其人啊!至于VC6中的MFC的内部类CString在VC7里成为共享类CString,大家心照不宣啊!
(发表于2005-8-7 13:19:00)
HeroiNg:编译不过啊
(发表于2005-9-1 16:59:00)
tfeitian:顶!
编译肯定能过
再检查检查
(发表于2005-10-4 20:41:00)
myred000:正愁没人教,天上掉下个粘豆包。
(发表于2006-3-16 17:29:00)
generalzhang:
ATL 中也有CString,
#include“atlstr.h”
查查MSDN中的CStringT
(发表于2006-10-26 17:09:00)
gsqazr:虽然有些地方看的不是很明白,但好多朋友看完后,都说不错,杨老师您太厉害了,希望我们大家可以一起跟杨老师加油!
(发表于2007-1-26 22:45:00)
DomeA:实在是太好了,顶了,COM把我搞死了
(发表于2007-8-31 14:01:00)
heroxx:按照杨老师的指导编写了组件程序后,需要再写一个简单的客户端测试程序来验证哦!
首先要将组件程序注册到COM库中:
RegSvr32 Simple2.dll
这样会在注册表中添加相应的信息,如果要删除这些信息,只要运行:RegSvr32 Simple2.dll /u 就可以了.
(VS2005)
新建一个MFC 对话框程序,放入4个Edit控件,并为其添加2个long型变量(m_add1,m_add2)和2个CString型变量
(m_cat1,m_cat2),添加2个按钮(ADD,CAT)为其加入事件处理程序如下:
void CClient2Dlg::OnButtonAdd()
{
UpdateData();
::CoInitialize(NULL);
IFun *pFun = NULL;
HRESULT hr = ::CoCreateInstance(CLSID_Fun,NULL,CLSCTX_INPROC,IID_IFun,(LPVOID*)
&pFun);
if(SUCCEEDED(hr))
{
hr = pFun->Add(m_nadd1,m_add2,&m_add);
if(FAILED(hr))
{
m_add = 0;
MessageBox(_T("操作组件失败!"),0,0);
}
}
if(pFun)
pFun->Release();
::CoUninitialize();
UpdateData(0);
}
(发表于2007-9-14 16:22:00)
heroxx:void CClient2Dlg::OnButtonCat()
{
UpdateData();
::CoInitialize(NULL);
IFun *pFun = NULL;
HRESULT hr = ::CoCreateInstance(CLSID_Fun,NULL,CLSCTX_INPROC,IID_IFun,(LPVOID*)
&pFun);
BSTR cat1,cat2,cat;
cat1 = m_cat1.AllocSysString();
cat2 = m_cat2.AllocSysString();
if(SUCCEEDED(hr))
{
hr = pFun->Cat(cat1,cat2,&cat);
if(FAILED(hr))
{
m_add = 0;
MessageBox(_T("操作组件失败!"),0,0);
}
if(SUCCEEDED(hr))
{
m_cat = cat;
}
}
if(pFun)
pFun->Release();
::CoUninitialize();
UpdateData(0);
}
记得要包含2个由Simple2.idl生成的重要文件:
#include "../Simple2/Simple2.h"
#include "../Simple2/Simple2_i.c"
OK,现在编译一下,运行看看!
(发表于2007-9-14 16:22:00)
jinglecat:老师,您讲的太牛啦,我对您的敬仰如巍巍泰山,直入云霄......
(发表于2007-10-11 0:56:00)
..........................................................................
--------------------next---------------------
阅读(165) | 评论(0) | 转发(0) |