Hello Folks Du kan ju testa detta. Är osäker på hur du skriver i VB. Hej Q IgenDLL Delphi String PChar Funktioner ?
Ett ämne som varit uppe förr.
Jag skriver DLL:er i Delphi som sedan skall
användas av tex VB. Allt är frid och fröjd så länge
det rör sig om Funktioner som returnerar nummeriska värde.
Men att få till det, med att få en Funktion att bearbeta en
String som skickats till den,och sedan returnera tillbaka ett
resultat har jag strulat med nu en vecka.
Förstår att jag måste arbeta med PChar men hur tusan
skall jag få tex VB eller ett annat Delphi prog att ta emot returen.
Ett förslag eller länk i ämnet skulle sitta som en "smäck"
mvh
SvenSv: DLL Delphi String PChar Funktioner ?
Men vill du ha ett exempel på hur man fixar detta i delphi är det bara att säga till.
===== On the VB side...
Private Declare Sub ConvertNumber Lib "DLLTest.dll" (ByVal I As Integer,
ByVal S As String)
Private Sub Command1_Click()
Dim S As String * 20
Text1.Text = ""
ConvertNumber 12340, S
Text1.Text = S
End Sub
===== On the Delphi DLL side...
library pCharDLLTest;
uses
SysUtils,
Classes;
procedure ConvertNumber (I : smallint; S : pChar); stdcall;
begin
StrPCopy(S, IntToStr(I));
end;
exports
ConvertNumber;
end.Sv: DLL Delphi String PChar Funktioner ?
Du kan inte tro vad jobb jag lagt ner på sökning om detta
Tror att du satte mig på spår.
Jag har låst mig vid att det måste vara en Funktion.
Så här har jag skrivit ,när jag returnerar tex Single
funkar det alldeles utmärkt.
Private Declare Function StrTest Lib "MyFirstDll.dll" _
(ByVal TestStr As String) As String
'*************** VB **************
Test prog i Delphi ang returnera String
unit Vbapp;
interface
//Viktigt deklarera för Export och som StdCall
Function StrTest(inStr :String):
PChar;Export;StdCall ;
implementation
uses
Sharemem,SysUtils
//*******************************
Function StrTest(inStr:String):PChar ;
{I brist på ideer kunde jag inte hitta
på annat än detta }
Var
A: array[0..79] of Char ;
S: String ;
Begin
S := 'Sven Persson' ;
StrPCopy(A, S) ;
StrTest := A ;
End ;
//*******************************
end.
Med denna lösning blir det bara skräptecken i VB
Jag implementerar förstås unit Vbapp i ett Library som du visar på.
godNatt nu fick jag något att sova på
SvenSv: DLL Delphi String PChar Funktioner ?
Q du är en djä.... ängel :-o ,så mycket riv och slit i hår
och så var det så enkelt. Nu funkar det perf.
"Må ökensanden icke tränga in under din förhud"
mvh
Sven