deepthroat
Erfahrenes Mitglied
Diese Meldung erscheint wenn ein Manifest nicht gefunden werden kann. Das Einbetten eines Manifestes bzw. die Notwendigkeit kann man aber beim Visual Studio irgendwo einstellen.Im Detail funktioniert das LoadLibrary von Java heraus nicht. Bisher habe ich alle Anwendungen in VC++ 2008 Express Edition entwickelt und anschließend mit dem GCC Compiler kompiliert, dann erst hat es auch auf einem anderen Gerät funktioniert.
Konkret die Fehlermeldung:
"Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist".
Ich vermute mal die WFSStartUp Funktion ist in der msxfs Bibliothek definiert...?!Wird die DLL aber nicht gefunden, kommt folgende Fehlermeldung:
"no XFSTest in java.library.path"
Im GCC kompilieren funktioniert leider nicht:
Code:gcc -mno-cygwin -IC:/Programme/Java/jdk1.5.0_13/include -IC:/Programme/Java/jdk1.5.0_13/include/win32 -I"C:/Programme/XFS Manager/XFS/SDK/INCLUDE" -L"C:/Programme/XFS Manager/XFS/SDK/LIB" -lmsxfs -lxfs_conf -lxfs_supp -Wl,--add-stdcall-alias -shared -o Z:/XFSTest/XFSTest.dll C:/XFSTest/XFSTest/dllmain.c
und Fehlermeldung:
Code:/cygdrive/c/DOKUME~1/rpri236/LOKALE~1/Temp/ccL3nnN1.o:dllmain.c:(.text+0x40): un defined reference to `_WFSStartUp@8' collect2: ld returned 1 exit status
Die Reihenfolge der Bibliotheken auf der Kommandozeile ist signifikant. Man sollte die Objektdateien und Bibliotheken immer so anordnen, dass zuerst die Dateien genannt werden die eine Bibliothek benötigen und danach die Bibliothek selbst - du hast es offenbar umgekehrt gemacht. Der Linker entfernt nämlich einfach Bibliotheken falls diese nicht vorher von irgendeinem Modul benötigt werden.
Da also die main.c die Hauptdatei ist und von allen anderen Bibliotheken abhängig ist, sollte diese Datei auf jeden Fall zuerst genannt werden.
Gruß