首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

解決 VS2010 中引入 msi.h 導致的編譯錯誤

     編輯:C++ 入門

在 Visual Studio 2010 中建立一個 Win32 主控台專案(例如命名為 ReadFromMSM),專案建立完成後,直接在 ReadFromMSM.cpp 中引入標頭檔:

#include <msi.h>

此時若嘗試編譯,編譯器會噴出大量錯誤訊息,畫面如下所示:

編譯錯誤截圖

錯誤原因分析

經搜尋發現,<msi.h> 內部依賴 WINAPI 等巨集定義,而這些巨集是在 <windows.h> 中宣告的。因此,必須在引入 msi.h 之前先包含 windows.h。

注意: <windows.h> 必須置於 <msi.h> 之前,順序不可顛倒。

修正後的程式碼

#include <windows.h>
#include <msi.h>

加入 windows.h 後重新編譯,專案即可成功建置。

參考資源

StackOverflow: msi.h gives compilation error in dll

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved