Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi C++ "..." ins Delphi Übersetzten (https://www.delphipraxis.net/98500-c-ins-delphi-uebersetzten.html)

Robert Marquardt 28. Aug 2007 16:58

Re: C++ "..." ins Delphi Übersetzten
 
Da ich es in der Hilfe von D6 nicht gefunden habe, duerfte es erst ab D7 implementiert sein. Schau dir mal die Hilfe zu Parametern an.

Apollonius 28. Aug 2007 17:18

Re: C++ "..." ins Delphi Übersetzten
 
Mein Delphi 2005 Personal kennt nur offene Array-Parameter, und die sind ganz anders implementiert als in C.

Robert Marquardt 28. Aug 2007 17:56

Re: C++ "..." ins Delphi Übersetzten
 
Ah, endlich gefunden, also auch in D6. varargs Direktive. Nur fuer externe Deklarationen in DLLs.
Delphi-Quellcode:
function Vix_GetProperties(handle: VixHandle; firstPropertyID: VixPropertyID): VixError; cdecl; varargs;

Apollonius 28. Aug 2007 18:05

Re: C++ "..." ins Delphi Übersetzten
 
Danke für den Tipp.
Ich habe es eben getestet. Ein Kuriosum ist an dieser Stelle, dass bei mir auch ohne cdecl warnungsfrei kompiliert wird, und auf Assemblerebene kann man die Aufrufkonvention register erkennen. Da sollte der Compiler mindestens eine Warnung schmeißen (bei mehr als drei Parametern ist schließlich der Stack futsch) oder besser noch abbrechen.

nitschchedu 28. Aug 2007 22:08

Re: C++ "..." ins Delphi Übersetzten
 
So kommen wir nun zur auflösung ^^
nach vielen Test habe ich rausgefunden das
Delphi-Quellcode:
function Vix_GetProperties(handle: VixHandle; firstPropertyID: VixPropertyID): VixError; cdecl; varargs;
das geht :cheers:
Danke allen für die Hilfe ;-)

nitschchedu 10. Dez 2007 17:50

Re: C++ "..." ins Delphi Übersetzten
 
Ich habe mal wieder eine übersetzungs frage :gruebel: .

Code:
#define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP)
habe ich so versucht

Delphi-Quellcode:
  Tndu_NETWORK_ADDRESS_LENGTH_IP = SizeOf(Tndu_NETWORK_ADDRESS_IP);
aber es kommt der Fehler :
Zitat:

[Pascal Fehler] nduNtDDNdis.pas(1789): E2029 '..' erwartet, aber ';' gefunden
Wie übersetzt man das ?

Apollonius 10. Dez 2007 18:07

Re: C++ "..." ins Delphi Übersetzten
 
Das ist eine Konstante.

nitschchedu 11. Dez 2007 19:16

Re: C++ "..." ins Delphi Übersetzten
 
Ah ok :oops: aber jetzt noch mal eine Frage

Code:
typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V1
{

    struct
    {
        ULONG    Encapsulation;
        ULONG    MaxOffLoadSize;
        ULONG    MinSegmentCount;
        ULONG    TcpOptions:2;
        ULONG    IpOptions:2;
    } IPv4;
   
} NDIS_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V1;
Macht das überhaupt sinn eine Struktur in einer Sturktur ... wenn nix weiter kommt !? :gruebel:
Vor allem im Variabelnamen ":2" was soll das :gruebel: :wiejetzt:

himitsu 11. Dez 2007 19:33

Re: C++ "..." ins Delphi Übersetzten
 
Das mit dem :2 kann ich auch nicht beantworten (konnt jetzt auch im MSDN nicht rauslesen).

Vielleicht kommen ja in den anderen NDIS_TCP_LARGE_SEND_OFFLOAD_V* ja noch weitere Strukturen dazu und die wollten einfach nur bei allen Diesen einen gleichen/ähnlichen Aufbau. :zwinker:
(praktisch nur etwas logischer für den Programmierer, daber sonst hat es keinen wirklichen Sinn)

nitschchedu 11. Dez 2007 19:35

Re: C++ "..." ins Delphi Übersetzten
 
Ah ok also wenn ich das auch so mache müsste das aber Funktionieren ?

Delphi-Quellcode:
  Tndu_NDIS_TCP_LARGE_SEND_OFFLOAD_V1 = record
     IPv4: record
       Encapsulation: ulong;
      MaxOffLoadSize: ulong;
      MinSegmentCount: ulong;
      TcpOptions: ulong;      //TcpOptions:2;
      IpOptions: ulong;         //IpOptions:2;
    end;
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz