Laden...

IKVM - Stub erstellen

Letzter Beitrag vor 18 Jahren 2 Posts 2.946 Views
IKVM - Stub erstellen

Hat jemand von euch schon mal IKVM ausprobiert?

Ich würde gerne aus einer Java-Applikation C#-Klassen verwenden. Zum Testen habe ich eine ganz kleine Klasse erstellt, die nichts weiter kann, als einen string[] mit den Namen aller aktiven Toplevel-Fenster zu erzeugen (über winapi).

Daraus habe ich eine .dll erstellt und in den Einstellungen angegeben, einen strong name zu erstellen, was auch prima funktioniert hat. Der Versuch, mit dieser dll als Parameter ikvmstub aufzurufen scheiterte aber:

D:\IKVM\test1\GetWindows\bin\Release>........\ikvmbin-0.22.0.0\ikvm-0.22.0.0\bin\ikvmstub.exe GetWindows.dll

Unhandled Exception: System.BadImageFormatException: The format of the file 'GetWindows.dll' is invalid.
File name: "GetWindows.dll"
at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark& stackMark)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Boolean stringized, Evidence assemblySecurity, StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence security
Evidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
at NetExp.Main(String[] args)

=== Pre-bind state information ===
LOG: Where-ref bind. Location = D:\IKVM\test1\GetWindows\bin\Release\GetWindows.dll
LOG: Appbase = D:\IKVM\ikvmbin-0.22.0.0\ikvm-0.22.0.0\bin\
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
===

LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///D:/IKVM/test1/GetWindows/bin/Release/GetWindows.dll.

Dann habe ich die Assembly mal in den GAC eingetragen (dort wird sie auch angezeigt, alles schön und gut). Aber er findet die Assembly nicht:

D:\IKVM\test1>..\ikvmbin-0.22.0.0\ikvm-0.22.0.0\bin\ikvmstub.exe GetWindow
Error: Assembly "GetWindow" not found

Wenn ich das aber zum Beispiel mit System als Parameter aufrufe, funktioniert es...

Weiß jemand woran das liegt?

Wir leben zwar alle unter demselben Himmel, haben aber deswegen lange noch nicht alle denselben Horizont.

Hat hier niemand eine Idee? push

Btw ich hab das jetzt gecrosspostet, aber ich werde hier schreiben, falls ich woanders die Lösung finde:
http://java-forum.org/de/viewtopic.php?p=153161#153161

Wir leben zwar alle unter demselben Himmel, haben aber deswegen lange noch nicht alle denselben Horizont.