社区
ATL
帖子详情
ATL问题,很急,今天晚上一定要搞定
alphagx
2002-06-12 11:01:02
我的一个ATL组件,是EXE文件,
我用VBScript能调用,
当用VC的CoCreateInstance却不行,返回的错误值是0X80029C4A
...全文
134
23
打赏
收藏
ATL问题,很急,今天晚上一定要搞定
我的一个ATL组件,是EXE文件, 我用VBScript能调用, 当用VC的CoCreateInstance却不行,返回的错误值是0X80029C4A
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alphagx
2002-06-15
打赏
举报
回复
欢迎大家继续讨论。。。。。
rick1126
2002-06-15
打赏
举报
回复
还有提醒一点, 我发现组件在中文目录里面注册成功也无法调用, 不知道大家有没有类似情况.
chenybin
2002-06-15
打赏
举报
回复
UP!!!!!!!!!!
spidertan
2002-06-14
打赏
举报
回复
Up!
alphagx
2002-06-14
打赏
举报
回复
我也感觉特别奇怪,
我后来自己重新生成了一个项目,
一切OK。
虽然我的IDR_NpsData资源的语言类型为chinese(P.R.C)
TO: loyee
请到
http://www.csdn.net/expert/topic/797/797141.xm
拿分,这个帖子的问题我在这儿已经问了。
loyee
2002-06-13
打赏
举报
回复
CoCreateInstance(...)中你的CLSID跟INTERFACE ID是什么呢?是否也可以说一下你的参数?
alphagx
2002-06-13
打赏
举报
回复
这是接口的RGS文件
HKCR
{
NPSData.ConfigData.1 = s 'ConfigData Class'
{
CLSID = s '{60FB529A-4FD6-479D-9D09-33F413E52AE6}'
}
NPSData.ConfigData = s 'ConfigData Class'
{
CLSID = s '{60FB529A-4FD6-479D-9D09-33F413E52AE6}'
CurVer = s 'NPSData.ConfigData.1'
}
NoRemove CLSID
{
ForceRemove {60FB529A-4FD6-479D-9D09-33F413E52AE6} = s 'ConfigData Class'
{
ProgID = s 'NPSData.ConfigData.1'
VersionIndependentProgID = s 'NPSData.ConfigData'
ForceRemove 'Programmable'
LocalServer32 = s '%MODULE%'
val AppID = s '{DE7B0787-4F8E-4396-ADCB-380F135CEB3A}'
'TypeLib' = s '{B774E89A-EBAE-4E7E-B1F4-9C599AAAB916}'
}
}
}
alphagx
2002-06-13
打赏
举报
回复
在VBScript中运行正常,
在CoCreateInstance(....)前面调用了
CoInit...
RGS文件中的 内容
HKCR
{
NoRemove AppID
{
{DE7B0787-4F8E-4396-ADCB-380F135CEB3A} = s 'NPSData'
'NPSDATA.EXE'
{
val AppID= s {DE7B0787-4F8E-4396-ADCB-380F135CEB3A}
}
}
}
zdhe
2002-06-13
打赏
举报
回复
if you use own proxy/stub, you must registry AppID ...
in vbscript, the download package have generated this , and when donwload finish, IE automatically registered it.
you does need regist everything you need. when directly use in VC..
loyee
2002-06-13
打赏
举报
回复
正常情况下,在你的ATL对象的_tWinMain(...)中有下面的一段代码.
while (lpszToken != NULL)
{
if (lstrcmpi(lpszToken, _T("UnregServer"))==0)
{
_Module.UpdateRegistryFromResource(IDR_NpsDAta, FALSE);
nRet = _Module.UnregisterServer(TRUE);
bRun = FALSE;
break;
}
if (lstrcmpi(lpszToken, _T("RegServer"))==0)
{
_Module.UpdateRegistryFromResource(IDR_NpsDAta, TRUE);
nRet = _Module.RegisterServer(TRUE);
bRun = FALSE;
break;
}
lpszToken = FindOneOf(lpszToken, szTokens);
}
注意查看ATL对象的资源表中IDR_NpsDAta内容,位于"Registry"段中.IDR_NpsDAta就是你要写入\\HKEY_CLASSED_ROOT\APPID中的内容.为了更加保险,确定IDR_NpsDAta资源的语言类型为Englist(U.S.).
ATL有关写登记项内容是标准的过程.我想你没有必要自己用Reg...系列函数自己些.
如果你用VC模板生成ATL对象的话,好象不应该有这个问题的.
daehappy
2002-06-13
打赏
举报
回复
up!关注!
loyee
2002-06-13
打赏
举报
回复
调用方式应该没有什么问题.如果查了DLL没有缺少并且DLL版本都符合你运行ATL条件还是有问题的话,是否可以尝试下面的方法来调用ATL对象.
下面的方式应该跟你VBScript中调用非常接近.注意#import后面要跟你ATL对象文件名实际路径.using namespace后也要是你ATL对象的名字空间.根据你的登记项内容,NPSDATALib应该是Default名字.同时不要包含ATL对象一些接口的头文件.
如果确定ATL对象在VBScript能够运行的话,最大可能是VC中调用ATL对象方式的问题.只是用CoCreateInstance(...)没法调用的确很奇怪.
还有一个建议是,屏蔽ATL对象中的具体代码.只保留相同的接口,方法,属性等框架.用CoCreateInstance(...)调用看看是否可以创建ATL对象的实例,如果可以的话,然后再慢慢添加具体代码,找到哪些代码导致0x80029C4A的错误码.如果不行的话,应该是调用ATL对象方式的问题了.
#import "NPSData.exe"
using namespace NPSDATALib;
void LoadATL()
{
IConfigDataPtr pConfigData;
HRESULT hr;
CoInitialize(NULL);
hr = pConfigData.CreateInstance("'NPSData.ConfigData");
......
}
alphagx
2002-06-13
打赏
举报
回复
hr = CoCreateInstance( CLSID_ConfigData,
NULL,
CLSCTX_ALL,
IID_IConfigData,
(void**) &ptrConfigData );
loyee
2002-06-12
打赏
举报
回复
也不能说注册绝对没有问题. LoadRegTypeLib ()系列的函数调用会导致这个错误.而这些函数都需要访问注册表.只是他对问题的描述还不够太具体.
是否可以把ATL对象的注册表内容贴出来?在VBScript中调用确定正常吗?CoCreateInstance(...)前面是否调用了CoInitialize(...)或进行其他初始话COM环境的操作?
alphagx
2002-06-12
打赏
举报
回复
我在组件中使用了ADO,我的系统是Win2K Server Sp2,
上面是空的系统,没有安装VC,VB之类的
alphagx
2002-06-12
打赏
举报
回复
But I can create and call the ATL Sever with VBScript..
Savage_ts
2002-06-12
打赏
举报
回复
估计注册没有问题,要是有这个错误的话,就根本不能注册。错误是不能加载库,你可以去查一下MSDN
loyee
2002-06-12
打赏
举报
回复
#define TYPE_E_CANTLOADLIBRARY _HRESULT_TYPEDEF_(0x80029C4AL)
在创建ATL对象的时候,你在ATL内部是否调用了其他DLL?查看该DLL是否在运行的机器里面.
用DEPENDS工具查看你的ATL运行时需要的DLL,并查看这些运行环境在创建ATL对象的机器里面是否具备.
如果你的ATL依赖第三方开发环境,查看是否安装了第三方部件的运行环境.
Savage_ts
2002-06-12
打赏
举报
回复
能把问题说清楚点吗?
iterator
2002-06-12
打赏
举报
回复
//
// MessageId: TYPE_E_CANTLOADLIBRARY
//
// MessageText:
//
// Error loading type library/DLL.
//
#define TYPE_E_CANTLOADLIBRARY _HRESULT_TYPEDEF_(0x80029C4AL)
注册有问题吧?
加载更多回复(3)
谁说双985都去大厂,我没去,好吧,非科班临时转码难,emo
今年的金九银十已经开始喽,相信有不少同学已经陆续面试了,但个人能亲自经历的面试题/面试经验相对还是很少的,所以很有必要看看其它同学的面试题/经验,可以很好的作为。base武汉*三个面试官,轮流来,但是强度不高*主要八股:1.智能指针,智能指针的内存泄漏,怎样避这种情况2.vector的扩容机制3.共享内存、管道的区别4.2. JAVA的集合ArrayList和LinkedList的区别,查找的时间复杂度?分享一下:我总结的包括阿里,腾讯,字节,商汤,华为等十几家互联网和AI公司的面经以及平时我的学习经验。
题解 | #IP地址转化# 不要被题目迷惑了,直接计算就行了。
八大职类:技术类、供应链类、产品类、运营类、设计类、职能类、风控类、商品。毁灭吧,累了,如果我有灭霸的那个拳套,我
一定
打个响指。累了,毁灭吧,毁灭吧,毁灭吧,毁灭吧。辛苦各位牛友帮选下,三方开太早了三星优点:14天年假,氛围好,965,加班费加倍另算,平均2-3k;然后我就发了一个邮件,问了一下,然后变成了“待沟通”,结果过了不到半小时,全程43分钟,多益一面不是hr面吗,看了下多益面经,发现好多一样的,可惜我以为是hr面[牛泪][牛泪][牛泪]面试官全程是一个冷酷无情的提问机器人自我介绍看过前?
24届一人一个:年薪30W+的真国企&;金融科技大平台
手撕算法三道(PS: 都需要用最优解)给定一个只有0,1,2的数组,得到一个前面全是0,后面全是1的数组(具体
问题
不记得了)一道动态规划题,具体忘了力扣503.签了一个双非本该有的价格还是小sp,也是知足了,三方已签,企业offer直接发到三方平台了,想毁约也难了,没offer之前想着有offer就行,现在有了想更好更。校招宣讲马上就开始了,安徽大学,合肥工业大学,中国科学技术大学,武汉理工大学,北京邮电大学,重庆大学,四川大学,先交通大学,中山大学,华南理工大学,华东师范大学。
程序人生!(转)
2002年7月的深圳烈日炎炎。不觉已辞去工作近两个月,仍在天天奔忙着面试,寻找新的工作机会。我已经尝试了好几家公司,有小到只有一个三房一厅住宅改造成的软件公司,也有大到有几栋楼宇的大型IT国企。从繁华的罗湖商业区到IT企业林立的南山科技园再到美丽的蛇口,我都跑了,结果不 尽如意。我的开价是8k/月,有的公司去后即石沉大海,有的公司希望我能降降价,有的公司想让我合作作某某项目,我coding他们出工钱,相当于作短期外包,但coding量吓死人,工钱才6k/月, 还有一家风险投资的老板想要我作一个新
IOS-粉色系PPT模版.ppt
IOS-粉色系PPT模版.ppt
ATL
3,248
社区成员
48,529
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章