Bonjour,

Mon problème est un peu particulier et je vais tenter d'être clair en l'exposant.

Je souhaite m'interfacer avec du code écrit en Java, dont les .jar ont été transformé en une DLL grâce à l'outil ikvm et une commande semblable à:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ikvmc -out:ToBeUsed.dll -recurse:SOME_PATH\*.jar
J'ai tenté la méthode dynamique indiquée si dessous, en utilisant la javadoc des .jar sources pour charger une fonction statique.http://www.google.com/url?q=http%3A%...FbWBxZm5HxthQQ
Cependant, la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GetProcAddress(HandleDLL, pAnsiChar('MyFunction'));
ne renvoie pas une valeur correcte, donc le test échoue.

Maintenant quelques données vérifiées :
L'outil Tdump, par la commande tdump -ee -m ToBeUsed.dll ne me montre pas le contenu de la dll.
Au sein d'un environnement dotNet (visual studio), j'ai pu importer cette dll et l'utiliser pour afficher le toString d'un objet retourné par une fonction statique. Donc la dll est fonctionnelle.

Voici le code de la procédure Delphi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure Test();
var
  HandleDLL: THandle;
  getFlowMind: function (): TObject;
begin
  //Chargement de la DLL
  HandleDLL := LoadLibrary(pWideChar('C:\Flowmind_Home\flowmind67All.dll'));
 
  //Si la DLL n'est pas chargée on ne continue pas
  If HandleDLL = 0 then Exit;
 
  //Récupération de l'adresse de la fonction nommée 'Somme'
  getFlowMind := GetProcAddress(HandleDLL, pAnsiChar('com.akazi.flowmind.api.access.FlowMindAccess.getFlowMind'));
 
  //Appel de la fonction si on a bien récupéré son adresse
  If Assigned(getFlowMind) then
    ShowMessage(getFlowMind.ClassName)
  Else
    ShowMessage('Error');
 
end;

J'en viens à ma question. Existe-t-il un outil permettant de faire cela ?
Je n'ai pas trouvé de méthode du langage qui le permette, et à vrai dire, beaucoup de sujets à ce propos commencent à se faire vieux.

Merci d'avance !