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