我試圖寫一個dll,這是怎麼看我的頭文件:使用dllimport的過程
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
DLLIMPORT void HelloWorld (void);
#endif /* _DLL_H_ */
在.cpp文件包括我這個頭文件,我嘗試聲明一個DLL導入過程這樣:
DLLIMPORT void HelloWorld()
{
MessageBox (0, "Hello World from DLL!n", "Hi", MB_ICONINFORMATION);
}
但是編譯器(我已經在Windows 7 MINGW32 64位)不斷給我這個錯誤:
E:\Cpp\Sys64\main.cpp|7|error: function 'void HelloWorld()' definition is marked dllimport|
E:\Cpp\Sys64\main.cpp||In function 'void HelloWorld()':|
E:\Cpp\Sys64\main.cpp|7|warning: 'void HelloWorld()' redeclared without dllimport attribute: previous dllimport ignored|
||=== Build finished: 1 errors, 1 warnings ===|
我不明白爲什麼。
我合併了你的兩個帳戶,所以你現在應該能夠接受答案。 – 2011-01-10 18:53:28