问题:
要在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 作者:網際飛星
评论