中国UML论坛

播种机

整理:mouri

0==========
原文(nbmoon于2001/05/07 19:04粘贴) 
有谁熟悉ATL的COM技术.你好.我想问问如何在文件中调用COM组件..我在stdAfx.h中加入tlb类型库,然后直接用智能指针调用,但是编译时候告诉我不认识指针.怎么做呢? 
--------------------------------------------------------------------------------

1==========
原文(karma于2001/05/08 01:25粘贴) 
你用#import“tlb文件名”了么?贴出你的编码来 
--------------------------------------------------------------------------------

11==========
原文(nbmoon于2001/05/08 03:55粘贴) 
我用了.我发现import一定要放在atlcom.h后面.不过还是不行.我贴出来了 
--------------------------------------------------------------------------------
我可以发给你压缩的程序.大概200k吧.可以吗?这是我的毕业论文.我很着急的.谢谢阿.我查了一天. 
只查到其他问题,还是没查到为什么不可以用指针如IOrderDataPrt,连定义的CLISD_OrderData都不认识了.真是失败拉. 
好了,我要睡了,4点了.希望明天好消息.谢谢:) 

这是stdAfx.h的定义: 
#define _ATL_APARTMENT_THREADED 
#include 
//You may derive a class from CComModule and use it if you want to override 
//something, but do not change the name of _Module 
extern CComModule _Module; 
#include 

#import "d:\Program Files\Common Files\System\ADO\msado15.dll" \ 
no_namespace rename("EOF", "EndOfFile") 

#import "..\Nbmcsvr\Nbmcsvr.tlb" named_guids no_namespcae 

//{{AFX_INSERT_LOCATION}} 

这是错误的报告: 
ompiling... 
StdAfx.cpp 
e:\nbmc\topobj\debug\msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned 
e:\nbmc\topobj\stdafx.h(27) : warning C4185: ignoring unknown #import attribute 'no_namespcae' 
Compiling... 
Categories.cpp 
E:\Nbmc\TopObj\Categories.cpp(56) : error C2065: 'IOrderDataPtr' : undeclared identifier 
E:\Nbmc\TopObj\Categories.cpp(56) : error C2146: syntax error : missing ';' before identifier 'pOrderData' 
E:\Nbmc\TopObj\Categories.cpp(56) : error C2065: 'pOrderData' : undeclared identifier 
E:\Nbmc\TopObj\Categories.cpp(60) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify -GX 
E:\Nbmc\TopObj\Categories.cpp(61) : error C2228: left of '.CreateInstance' must have class/struct/union type 
E:\Nbmc\TopObj\Categories.cpp(61) : error C2065: 'CLSID_OrderData' : undeclared identifier 
E:\Nbmc\TopObj\Categories.cpp(62) : error C2227: left of '->GetCategoryRecordset' must point to class/struct/union 
Category.cpp 
TopObj.cpp 
TopOrd.cpp 
Generating Code... 
Error executing cl.exe. 

TopObj.dll - 6 error(s), 3 warning(s) 

111==========
原文(karma于2001/05/08 06:13粘贴) 
把no_namespcae改成no_namespace 
--------------------------------------------------------------------------------
e:\nbmc\topobj\stdafx.h(27) : warning C4185: ignoring unknown #import attribute 'no_namespcae' 

1111==========
原文(nbmoon于2001/05/08 18:44粘贴) 
非常感谢.原来这样阿.我以为warning错误不用管他呢.对阿,还有一个warning 
--------------------------------------------------------------------------------
e:\nbmc\nbmcsvr\debug\msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned 
要紧吗?要改正吗? 
再说一下,特别谢谢你:) 

11111==========
原文(karma于2001/05/09 10:21粘贴) 
别客气 
--------------------------------------------------------------------------------
这是ADO的TLB文件,好象不需要改动