2008年9月5日 星期五

'CoInitializeEx' : undeclared identifier 錯誤

從MSDN中知道了要include objbase.h標頭檔

 #include <objbase.h>
 void main()
 {
  int hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); 
 }

奇怪怎麼發生錯誤? Google了一下原來在 ColnitializeEx在objbase.h中的定義如下:

 #if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM
 WINOLEAPI  CoInitializeEx(LPVOID pvReserved, DWORD dwCoInit);
 #endif // DCOM

這表示使用前必須先加入:#define   _WIN32_DCOM
重點是此行必須加在 #include <objbase.h> 之前,改成如下即可執行。

 #define   _WIN32_DCOM
 #include <objbase.h>
 void main()
 {
  int hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); 
 }


沒有留言:

張貼留言