3
我想編寫一個工具來捕獲和可視化特定應用程序中的按鍵,所以我搜索了一個示例源。用mingw和eclipse編譯dll
我的結果是這樣的:
http://www.codeguru.com/cpp/w-p/system/keyboard/article.php/c5699
但它還沒有工作。這是我的方法:
我已經使用Mingw 4.6.1作爲工具鏈將源代碼導入爲Elipse(Helios,CDT版本7.0.0.201006141710)中的makefile項目。
在keydll3.cpp我增加了行
#define KEYDLL3_EXPORTS
告訴我要導出的DLL函數的預處理。
現在,當我嘗試編譯項目,下面的錯誤occour:
**** Internal Builder is used for build **** g++ -shared -DBUILDING_EXAMPLE_DLL -IC:\MinGW\include -IC:\MinGW\lib\gcc\mingw32\4.6.1\include\c++ -O2 -g -Wall -c -fmessage-length=0 -oStdAfx.o ..\StdAfx.cpp g++ -shared -DBUILDING_EXAMPLE_DLL -IC:\MinGW\include -IC:\MinGW\lib\gcc\mingw32\4.6.1\include\c++ -O2 -g -Wall -c -fmessage-length=0 -okeydll3.o ..\keydll3.cpp ..\keydll3.cpp:31:0: warning: ignoring #pragma data_seg [-Wunknown-pragmas] ..\keydll3.cpp:34:0: warning: ignoring #pragma data_seg [-Wunknown-pragmas] ..\keydll3.cpp:36:0: warning: ignoring #pragma comment [-Wunknown-pragmas] g++ -okeydll3 keydll3.o StdAfx.o c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../libmingw32.a(main.o): In function `main': C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to `[email protected]' collect2: ld returned 1 exit status Build error occurred, build is stopped
看來,編譯器錯過了WinMain函數語句,因爲他認爲這是一個Windows應用程序。但一個DLL不是。 這似乎也是「共享」選項沒有效果。
那麼,我該如何告訴編譯器,我的代碼是帶有一些Windows API調用的DLL?
如果還有另一個沒有視覺工作室的例子讓我知道。
在此先感謝您的貢獻。
比諾
非常感謝! – Noir 2012-02-17 08:43:53