Ciao, ho un form in delphi per .NET, devo richiamare una DLL fatta in delphi per win32.
la mia procedure richiamata nel form è di questo tipo:
nella DLL invece :codice:procedure CARD_TO_S(var input:cardinal, var output:string) cdecl;external 'STRMANAGEMENT.DLL'
Il problema è che quando faccio la chiamata alla procedura, devo per forza inizializzare obbligatoriamente la variabile output, altrimenti ricevo un errore run time di access violation. In questo modocodice:procedure CARD_TO_S(var input:cardinal; var output:PWideChar); cdecl; export; var appo:String; var len:Integer; begin appo:=IntToStr(input); len:=Length(appo); StringToWideChar(appo,output,len+1); end;
Come mai? E' possibile risolvere il problema senza per forza doverla inizializzare? Graziecodice:HOURS:=''; CARD_TO_S(HH,HOURS);

Rispondi quotando
