Bonjour,

Je doit appeler une DLL Win32 depuis un programme Delphi Dot.net. J'utilise la méthode DllImport et ça marche très bien avec des types numériques, le souci apparaît quand je veux utiliser des chaines. Dans ma Dll Win32 j'ai:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
function PassageChaine(Chn: PChar):Boolean;stdcall;
begin
 ShowMessage(StrPas(Chn));
end;
Dans mon appli.net j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 [DllImport('Calculer.dll', CharSet = CharSet.Auto, EntryPoint = 'PassageChaine')]
	Function PassageChaine(Chn:String):Boolean; external;
et au niveau de l'appel j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 PassageChaine('abcde');
Lorsque j'exécute l'appli je vois bien le showmessage mais uniquement avec le premier caractère : a

Le problème vient d'ou de la DLL ou du programme appelant ?

Merci d'avance