登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

璀璨星空&旖旎花園gegei.com

★╰→流星劃過夜空,不僅是為了帶來祝福,同時也是為了追求幸福!

 
 
 

日志

 
 

关于OLE32.DLL的一个问题,难道从来没有人碰到过吗?   

2007-12-01 22:30:01|  分类: 程序编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

问题:
要在VC中调用OLE32.DLL的CoWaitForMultipleHandles函数,编译时说未声明的标志符(Project-->Setting-->Link下的“Object/library moduals”里面加入了Ole32.lib)
使用#import导入OLE32.DLL说“Can't open type library file”。
使用depends查看OLE32.DLL可以看到这个函数,序号为104,查看MSDN找不到
查看微软网站的MSDN说是在<objbase.h>中声明,在OLE32.DLL中定义。但是查看objbase.h里面没有这个函数的声明。
在VB中使用Declare引入OLE32.DLL这个函数可以顺利调用没有问题。
在百度中输入CoWaitForMultipleHandles查找无任何结果。
Google中有许多探讨CoWaitForMultipleHandles函数的功能的文章,关于这个问题也没有结果。
CSDN上的faq、已解决问题、文档等都翻遍了也找不到关于这个问题的解答。
难道这个问题没人遇到过吗?企盼高手赐教!!

 

是是》》》》?????


typedef //返回值 (WINAPI* ES_CoWaitForMultipleHandles)(//参数);

HMODULE hModule = LoadLibrary(X:\\WINPATH\\SYSTEM32\\OLE32.DLL);
if(hModule != NULL)
{
ES_CoWaitForMultipleHandles *CoWaitForMultipleHandles = GetProcAddress(hModule,"CoWaitForMultipleHandles");
}

if(CoWaitForMultipleHandles != NULL)
{
CoWaitForMultipleHandles(.....);

 

 

 

根据编译错误的提示,细节略有改动,如下:
typedef
HRESULT (_stdcall* ES_CoWaitForMultipleHandles)
(
DWORD dwFlags,
DWORD dwTimeOut,
DWORD cHandles,
HANDLE* pHandles,
DWORD* lpDwindex
);
HMODULE hModule = LoadLibrary("C:\WINNT\system32\OLE32.DLL");
if(hModule != NULL)
{
ES_CoWaitForMultipleHandles *CoWaitForMultipleHandles = reinterpret_cast<ES_CoWaitForMultipleHandles>
(GetProcAddress(hModule,"CoWaitForMultipleHandles"));
}

if(CoWaitForMultipleHandles != NULL)
{
CoWaitForMultipleHandles(.....);
}

也感谢其他朋友的支持。
不过小可还是想不明白,为什么这个函数非得这样调用,这是个导出函数啊,而且各方面的配置也都把它加进去了。??...

 

鸽给搜索 Gegei.com    喷鹤网 www.Penhe.com 作者:網際飛星

  评论这张
 
阅读(1381)| 评论(3)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018