![]() |
VarPtr in Delphi ?
Hallo,
eine Frage: Ich hab wiedermal ein Stück c++ die ich nicht nach Delphi übersetzen kann. Vielleicht kann jemand helfen ? Hier der Code :
Delphi-Quellcode:
Das müsste ich irgendwie in Delphi zustande bekommen
Here is the modified code that will do the job
Dim dwResult as Long Dim dwString as string Dim b(23) as byte 'defined a byte array (24 values) Dim result as string 'will contain the final string Dim i as integer FSUIPC_Initialization If FSUIPC_Open(SIM_ANY, dwResult) Then If FSUIPC_Read (&H3160,24,VarPtr (b(0)), dwResult) Then 'read all bytes at offset &H3160 in byte array If FSUIPC_Process(dwResult) Then For i=0 to 255 If b(i)=0 then exit for 'leave at 0 terminator result=result+Chr(b(i)) 'otherwise adds to result (don't forget the Chr) Next End If End If FSUIPC_Close EndIf Wie mach ich das ? Die frage ist dieses "VarPtr (b(0))" hauptsächlich und wie ich die Variable b definieren muss ? Dank Euch Matthias |
Re: VarPtr in Delphi ?
Moin Matthias,
also zuerst mal: Das ist Visual Basic nicht C++ ;-) b müsste meiner Ansicht nach so aussehen:
Delphi-Quellcode:
und übergeben müsstest Du wohl
var
b : array [0..23] of byte; @b[0] |
Re: VarPtr in Delphi ?
hi,
eventuell hättest du ja mal google benutzen können :wink: Zitat:
|
Re: VarPtr in Delphi ?
Hallöchen,
( oh VB also :-) ) also so hab ich mir das ja auch gedacht und das war dabei rausgekommen :
Delphi-Quellcode:
Leider geht das so irgendwie nicht
var
b : array[0..23] of byte; AcTyp : string; begin FSUIPC_Read($3160, 24, @bAc[0], dwResult); FSUIPC_Process(dwResult); for a := 0 to 255 do begin if bAc[a] = 0 then break else AcTyp := AcTyp + PChar(bAc[a]); end; mPhase.Lines.Add('Aircraft2 '+AcTyp); Weiss auch nicht warum ?? Du ? Danke Matthias |
Re: VarPtr in Delphi ?
Habs rausgefunden
nicht PChar sondern Char muss es sein :-) Danke matthias |
Re: VarPtr in Delphi ?
Zitat:
Hallöchen, hast Du da vielleicht irgendwas verwechselt ??? Ichhab doch nix mit Betanken und schon gar nicht mit einer definition von a und als real auch nicht zu tun ?? Matthias Ps: Trotzdem ist bei mir noch irgendein Fehler drin ?? Weisst Du vielleicht nen rat ? |
Re: VarPtr in Delphi ?
Hi,
wenn du evtl. das Projekt mal Posten kannst .. könnte ich bestimmt weiterhelfen ... aber ohne ganaue infos worum es geht wird es schwer :wink: |
Re: VarPtr in Delphi ?
Hallöchen,
ging doch blos um den komischen VarPtr. Das ganze Project :-) das sind mittlerweile umer 10000 Zeilen...ich glaub das fänden die Leute hier nicht wirklich lustig :-) Dank Dir aber trotzdem.... es ging ja nur um das hier :
Delphi-Quellcode:
var
b : array[0..23] of byte; AcTyp : string; begin FSUIPC_Read($3160, 24, @bAc[0], dwResult); FSUIPC_Process(dwResult); for a := 0 to 255 do begin if bAc[a] = 0 then break else AcTyp := AcTyp + Char(bAc[a]); // hier stand PChar() das war falsch end; mPhase.Lines.Add('Aircraft2 '+AcTyp); end; Matthias |
Re: VarPtr in Delphi ?
Moin Matthias,
Zitat:
Ob sich dass dann jemand ansehen würde ist dann natürlich wieder eine andere Frage ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 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 by Thomas Breitkreuz