004
12.07.2007, 01:53 Uhr
~lumpeh
Gast
|
Also ich habe jetzt ewig rumgefummelt und dabei ist folgendes entstanden (was bei mir noch nicht funktioniert):
Code: |
#include <jni.h> #include "NewJFrame.h" #include <stdio.h> #include <stdlib.h> #include <windows.h> #pragma comment(lib,"gdi32")
JNIEXPORT jintArray JNICALL Java_NewJFrame_go(JNIEnv *env, jobject obj) { POINT pos; HWND h; GetCursorPos(&pos); h = WindowFromPoint(pos); PAINTSTRUCT ps; HDC hdc = BeginPaint(h, &ps); TextOut(h,10,10,"Hello World",11); EndPaint(h, &ps);
return arr;
}
|
Beim compilieren sagt er mir folgendes:
mylib.c: In function `Java_NewJFrame_go': mylib.c:46: warning: passing arg 1 of `TextOutA' from incompatible pointer type /cygdrive/c/Users/Alex/AppData/Local/Temp/ccdN4FKd.o:mylib.c.text+0xf6): undefined reference to `_TextOutA@20' collect2: ld returned 1 exit status
Ich nutze Cygwin und das ist mein Kommandoaufruf: gcc -mno-cygwin -ICJava\jdk1.6.0_01\include -ICJava\jdk1.6.0_01\include\win32 -shared mylib.c -Wl,--add-stdcall-alias -o mylib.dll
Kann es sein dass er die gdi32.lib nicht findet? Wie linke ich die denn "richtig" ? Ich benutze als Entwicklungsumgebung Notepad...
Und stimmt der Code sonst? Ich möchte in einem fremden Fenster, dessen handle ich über ein Mausklick bekomme, einen String schreiben. Dieses Fenster kann (bzw ist) ein Fenster eines anderen Programmes, z.b. firefox oder sonstwas... Danke vielmals für die hilfe |