![]() |
Stringübergabe Delphi--> VB 6.0 in DLL
Hallo,
folgendes Anliegen habe ich: ich habe eine DLL geschrieben (in Delphi), eine Funktion übernimmt einen String (bzw einen Zeiger auf das 1. Byte) C-konform, schreibt diesen in ein Gerät, das zurücklesen zeigt, dass der String nicht richtig übergeben wurde, da nur irgendwelche Sonderzeichen, (irgendwas aus dem RAM) drin stehen. Meine Funktion sieht so aus:
Delphi-Quellcode:
Meine Frage ist nun wenn ich eine Zeiger auf einen String (PChar) übergeben lasse, wie muss die Deklaration in Visual Basic 6
function Set_Seriennummer(DataPointer:PChar):Cardinal;stdcall;
var Text:string; aPointer:PString; I:Integer; begin SetLength(Text,17); StrCopy(pchar(Text),DataPointer); Result:=aObj.Set_Seriennummer(Text); end; dann aussehen?? Gruß DelphiManiac |
Re: Stringübergabe Delphi--> VB 6.0 in DLL
Code:
Private Declare Function Set_Seriennummer Lib "xxx.dll" (ByVal DataPointer As String) As Long
Delphi-Quellcode:
function Set_Seriennummer(DataPointer:PChar):Cardinal;stdcall;
var Text:string; begin Text := DataPointer; // nullterminierte C-Style Strings können einfach durch Zuweisung konvertiert werden Result:=aObj.Set_Seriennummer(Text); end; |
Re: Stringübergabe Delphi--> VB 6.0 in DLL
@shmia
:lol: Danke, genau so ist die Implemtierung richtig. Wird denn in VB der String automatisch als PChar übergeben oder muss man dort noch irgendeine Wandlung vornehmen? Gruß und danke nochmal!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz