AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Übersetzung VB Delphi (ByRef pStatus As Any) As Long

Übersetzung VB Delphi (ByRef pStatus As Any) As Long

Ein Thema von zeras · begonnen am 19. Jul 2009 · letzter Beitrag vom 13. Sep 2009
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.540 Beiträge
 
Delphi 11 Alexandria
 
#1

Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 19. Jul 2009, 11:21
Ich möchte eine C Funktion nutzen. Als Beispiel wurde mir ein VB Beispiel gegeben.

(ByRef pStatus As Any) As Long

(var pStatus As ???) Longint

Wie kann ich "Any" übersetzen?
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 19. Jul 2009, 11:25
Schätzungsweise könnte es in Delphi ein Variant sein.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.540 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 19. Jul 2009, 18:42
Danke für den Tipp. Werde das mal ausprobieren.
Offensichtlich steckt meistens nur ein Byte dahinter, aber unter Umständen kann wohl auch ein Pointer dahinter stecken.
Matthias
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 19. Jul 2009, 19:02
Zitat von zeras:
Danke für den Tipp. Werde das mal ausprobieren.
Offensichtlich steckt meistens nur ein Byte dahinter, aber unter Umständen kann wohl auch ein Pointer dahinter stecken.
Kann alles sein!
String, Integer usw..

in dem Fall denke ich ist es ein String da dieser sich mit anderen sprachen nicht verträgt.

Besonders auf ByRef achten ..
also "var" vor pStatus nicht vergessen.

gruss Emil
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 13. Sep 2009, 13:16
Ich komme immer noch nicht so richtig weiter. Den Aufruf

{
extern "C" BOOL WINAPI xFndFirst(
char *fileName
//noch andere Variablen
}

hatte ich so übersetzt. Nur weiß ich nicht, ob das stdcall oder eher cdecl stehen muss.

Delphi-Quellcode:

function xFndFirst(
           var FileName : arDataTcp;
            //noch andere Variablen
         ): Boolean;
stdcall; external 'xxx.dll';
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#6

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 13. Sep 2009, 14:22
Versuch's mal mit PChar. Ohne var.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Chris.R

Registriert seit: 8. Sep 2009
Ort: Nürnberg
68 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 13. Sep 2009, 14:24
Hallo zeras,

"Char *filename" würd ich durch "FileName: PChar" übersetzen. Stdcall ist schon richtig bei WINAPI Funktionen. Ich glaub aber, dass BOOL als LongBool definiert werden sollte.

Ciao Chris
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.540 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 13. Sep 2009, 14:35
Danke für die Tipps.
Dies ist wahrscheinlich aber nicht das größere Problem. Ich komme nicht ganz klar mit den Wörtern stdcall und cdecl. In der Delphi Doku steht drin, dass bei C oder C++ DLL die Konvention "cdecl" hilfreich sein soll, aber da bekomme ich immer wieder Abstürze mit Access violation Fehlermeldung. Mit stdcall geht erst mal eine Funktion, aber bei anderen Funktion hatte ich auch irgendsolche Fehlemeldungen, wo ich nicht klarkomme.
Werde mal weiter mit stdcall probieren.
Matthias
  Mit Zitat antworten Zitat
Chris.R

Registriert seit: 8. Sep 2009
Ort: Nürnberg
68 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Übersetzung VB Delphi (ByRef pStatus As Any) As Long

  Alt 13. Sep 2009, 14:53
Wenn du cdecl benutzt obwohl die Funktion stdcall benutzt, zerschießt du dir den Stack und dann gibts massig AVs.
Bei cdecl muss die aufrufende Funktion den Stack aufräumen nicht die aufgerufe Funktion (wie bei stdcall), wenn du dann cdecl statt stdcall nutzt, dann wird der Stack zweimal aufgeräumt.

Ciao Chris
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf