Я хочу написать инструмент для захвата и визуализации нажатых клавиш в определенном приложении, поэтому я искал образец источника.
Мой результат был таким:
http://www.codeguru.com/cpp/w-p/system/keyboard/article.php/c5699
Но это пока не работает.Вот мой подход:
Я импортировал исходники как проект make-файла в Elipse (Helios, CDT Version 7.0.0.201006141710), используя Mingw 4.6.1 в качестве набора инструментов.
В keydll3.cpp я добавил строку
#define KEYDLL3_EXPORTS
, чтобы сообщить препроцессору, что я хочу экспортировать функции dll.
Теперь, когда я пытаюсь скомпилировать проектвозникают следующие ошибки:
**** 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 `WinMain@16'
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Кажется, что компилятор пропускает оператор winmain, потому что он предполагает, что это приложение для Windows.Но длл нет.Также кажется, что опция «-share» не имеет никакого эффекта.
Так как мне сказать компилятору, что мой код является dll с некоторыми вызовами Windows API?
Если есть другой пример, которыйработает без визуальной студии, дайте мне знать.
Заранее благодарим за ваш вклад.
Noir