2012-05-28 58 views
2

我是新的使用DLL。儘管我已經在Linux上完成了一些認真的C++編程,並且知道哪些是DLL。我需要使用自定義操作來編寫Windows安裝程序。爲此,我創建在Visual Studio 2010中的新DLL項目當我嘗試包括在StdAfx.h文件,我得到了如下因素錯誤msi.h:msi.h給出編譯錯誤DLL

1>------ Build started: Project: CustomAction, Configuration: Debug Win32 ------ 
1> DllEntry.cpp 
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msi.h(86): error C2146: syntax error : missing ';' before identifier 'WINAPI' 
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msi.h(86): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msi.h(86): error C2146: syntax error : missing ';' before identifier 'MsiCloseHandle' 
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msi.h(86): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
...................... 

該項目有沒有除了StdAfx.cpp這包括StdAfx頁眉和StdAfx.h文件是這樣的:我嘗試添加路徑項目的鏈接器輸入屬性msi.lib

#include <msi.h> 
#include <msiquery.h> 
#include <stdio.h> 

。它沒有工作。 我也嘗試添加路徑到lib文件夾,包括文件夾和bin文件夾的Windows SDK目錄,也沒有工作。這是什麼原因,如果任何人都可以給我任何教程的指針,以使用Windows安裝程序的自定義操作,因爲我是這方面的新手。

回答

3

它看起來像<msi.h>取決於宏觀WINAPI。因此,您可能需要包括<windows.h>第一:

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

與DLL的工作時,沒有什麼特別的頭文件。標題文件的工作方式與您已習慣的相同。

+0

謝謝..那工作...另外,你有任何指導在Windows安裝程序的自定義操作教程? –

+0

對不起,我對MSI沒有任何具體的瞭解。 –

+0

沒有概率..謝謝反正..這很快 –