AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi nach C++

Ein Thema von EWeiss · begonnen am 29. Jul 2017 · letzter Beitrag vom 30. Jul 2017
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

Delphi nach C++

  Alt 29. Jul 2017, 22:13
Wäre jemand bereit mir diese Pas nach C++ zu übersetzen ?
Ich habe leider nicht die entsprechende Erfahrung dafür.

Das wäre sehr freundlich

gruss

Geändert von EWeiss (11. Jul 2019 um 16:02 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#2

AW: Delphi nach C++

  Alt 30. Jul 2017, 07:42
Ich könnte sowas auch selbst, aber ich bin tippfaul und lasse sowas in Step 1 stets per Converter erledigen

http://www.texttransformer.com/Delph...ngeLog_en.html

Der Umgang mit der Trailversion ist etwas tricky, man muss zuerst nur den "Interface" Teil für "Typen, Variablen,.." wegen dem Zeilen&Zeichenlimit Päckchenweise konvertieren und sich für H und CPP Datei selbst die passenden Ausgaben jeweils kopieren. Das Programm schreibt zwar pro Convert, es hätte "gelernte" Typen vergessen, aber es klappt so trotzdem dann zum Schluss die gesamte Implementierung typsicher konvertieren zu lassen... und vola, mit eigenen CPP Kenntnissen nun nur nochmal kurz drüber geschaut(ich habe dies also NOCH NICHT per Compiler auf Übersetzbarkeit und/oder Funktion geprüft!), fertig ist so trotzdem erstmal das gewünschte CPP+H File mit nur 5min Arbeit am Sonntag Vormittag
Angehängte Dateien
Dateityp: zip RT_KVideoPlayer2cpp.zip (4,40 MB, 7x aufgerufen)

Geändert von mensch72 (30. Jul 2017 um 07:56 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Delphi nach C++

  Alt 30. Jul 2017, 12:02
Und das kann man so unter VS2017 verwenden?
Was mache ich mit diesen ganzen test_0 > _38

in wie weit kann man sich auf solche Konverter verlassen?

Danke.

Hier zum Beispiel!
Code:
typedef BOOL __stdcall ( * test__37 )( HBITMAP BitmapHandle );
extern test__37 KVideo_UpdateOverlayImage;
  // Updates overlay image on video.
  // ( parameters )
  //  - BitmapHandle : Windows GDI bitmap handle ( 0 : delete overlay image )
  // ( result ) true on success, false on failure

typedef BOOL __stdcall ( * test__38 )( HBITMAP& BitmapHandle );
extern test__38 KVideo_GetCapturedImage;
  // Gets an captured image.
  // ( parameters )
  //  - BitmapHandle : gets bitmap handle to captured image
  // ( result ) true on success, false on failure
quasi das selbe aber doch unterschiedlich.
Code:
HBITMAP BitmapHandle
HBITMAP& BitmapHandle
C++ kennt TRect glaube ich nicht.
Code:
TRECT BitmapRect
Nebenbei:
Wie aufwendig ist das eine DLL von 32Bit nach 64Bit zu portieren bzw.. zu kompilieren
Was müsste da alles geändert werden.?

gruss

Geändert von EWeiss (30. Jul 2017 um 12:41 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: Delphi nach C++

  Alt 30. Jul 2017, 12:56
Das was da rausgekommen ist, passt für C++ Builder am besten und man kontrolliere nochmal penibel die Groß-&Kleinschreibung!!! da verzeiht C/C++ keine Fehler

Was machst du mit den ganzen test_.. keine Anhung das war auch in deinem PAS Source drin... einfacher ist so ein Convert, wenn man ein GANZES Projekt incl. der Anwendung umwandelt, dann sieht man wie man was verwendet...

Für VisualStudio muss man etwas weiter zurück auf die BasisTypen also nur "Handle", oder man definiere sich das was fehlt noch selbst... oder besser man binde die richtigen VS header ein, wo dann eigentlich alles schon drin ist.

Die Frage bei "C++" lautet also immer "welches"! Da sind die Unterschiede größer als zwischen Lazerus und Delphi!

Aber hier ist es ja "nur" ein DLL Interface... da fehlt zu Visualstudio kompatibel nicht mehr viel, da hilft aber VS Erfahrung, sonst suche man sich alles per MSDN

Geändert von mensch72 (30. Jul 2017 um 13:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Delphi nach C++

  Alt 30. Jul 2017, 14:30
Wie aufwendig ist das eine DLL von 32Bit nach 64Bit zu portieren bzw.. zu kompilieren
Was müsste da alles geändert werden.?
Das kommt ganz drauf an, ob überall die korrekten (skalierenden) Typen verwendet wurden. Falls ja, kannst du die DLL ohne Änderungen auch für 64-bit kompilieren. Also im Grunde genau wie bei Delphi.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Delphi nach C++

  Alt 30. Jul 2017, 14:48
Wie aufwendig ist das eine DLL von 32Bit nach 64Bit zu portieren bzw.. zu kompilieren
Was müsste da alles geändert werden.?
Das kommt ganz drauf an, ob überall die korrekten (skalierenden) Typen verwendet wurden. Falls ja, kannst du die DLL ohne Änderungen auch für 64-bit kompilieren. Also im Grunde genau wie bei Delphi.
Ok.. Es geht ja um Delphi also die DLL ist in Delphi geschrieben und ich wollte halt nur wissen wie aufwendig das wäre diese in 64Bit zu kompilieren.
Ob das geht weis ich nicht müsste dafür die Starter für Berlin installieren oder was auch immer 64Bit kompilieren kann.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi nach C++

  Alt 30. Jul 2017, 14:50
Starter nur 32 Bit.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Delphi nach C++

  Alt 30. Jul 2017, 14:59
Starter nur 32 Bit.
Das ist schlecht.
Hmmm

gruss
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#9

AW: Delphi nach C++

  Alt 30. Jul 2017, 15:20
wenn du die gesamte DLL nach C++ bekommst, dann ist es mit VSxxxx nur ein sehr geringer Aufwand das auf 64Bit zu bekommen.

Der von mir hier absichtlich als Trail vorgeschlagene Delphi zu Cpp Converter kann auch in seit heute auch zum Test verfügbarer aktueller Version1.7 nur die PascalSyntax bis Delphi7.
Das kann & macht er aber wirklich SHER GUT! Der Entwickler hat mit heute mitgeteilt, das er keine weiteren Updates dazu macht, sondern nächstes Jahr einen Converter liefert, der aus aktuellen Delphi-Sourcen dann echtes CPP11 macht (es gab aber gleich den Hinweis, das dies dann auch deutlich teurer wird)

Es ist immer eine Frage des Aufwandes... sobald ab D2007 "record's" mit Propertys, Operatoren oder Funktionen/Methoden ins Spiel kommen streikt der aktuelle Converter etwas, aber man kann es noch per Hand ohne viel Aufwand in C++ umsetzen. Wenn dann ab XE? die Generics noch dazu kommen wird es aktuell ganz kompliziert... da lohnt dann das Warten oder man hat viel Zeit und die C++ Skills für eine eigene manuelle Line per Line Umsetzung.

32->64 Bit sehe ich sobald die DLL in C++ egal ob VisualStudio oder C++Builder(Pro+) als die kleinere Herausforderung.

Geändert von mensch72 (30. Jul 2017 um 15:23 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Delphi nach C++

  Alt 30. Jul 2017, 15:49
Zitat:
wenn du die gesamte DLL nach C++ bekommst, dann ist es mit VSxxxx nur ein sehr geringer Aufwand das auf 64Bit zu bekommen.
Ich glaube das ist nicht nötig die DLL in Delphi sollte auch unter VS2017 funktionieren.

Voraussetzung dafür wäre wenn ich eine *.def erstelle und daraus ein Library bilde.
Der Header wird aber trotzdem benötigt.
Habe das mal mit meiner Bass_Vis DLL gemacht.

Die läuft auch unter VS ohne Probleme.
Muss mal schauen in wie weit sich der ganze Aufwand lohnt.
Danke!

Bsp.
Code:
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file KVideoPlayer.dll

File Type: DLL

  Section contains the following exports for KVideoPlayer.dll

           0 characteristics
           0 time date stamp Thu Jan 01 01:00:00 1970
        0.00 version
           1 ordinal base
          45 number of functions
          45 number of names

    ordinal hint RVA     name

         37    0 000E9FB0 KVideo_CloseFile
          5    1 000EA538 KVideo_CreateOverlayBaseImage
         13    2 000EA394 KVideo_DisplayModeChanged
          1    3 000EA6E0 KVideo_GetCapturedImage
         42    4 000E9DBC KVideo_GetLastError
         27    5 000EA0D8 KVideo_GetMediaInfoText
         18    6 000EA234 KVideo_GetMediaProperty
          9    7 000EA424 KVideo_GetPlayerState
         22    8 000E9FE0 KVideo_GetStreamInfo
         32    9 000E9FE0 KVideo_GetStreamInfo
          8    A 000EA43C KVideo_GetStreamPosition
         45    B 000E9D10 KVideo_GetVersion
         17    C 000EA2FC KVideo_GetViewSize
         40    D 000E9E48 KVideo_GetWorkingVR
         24    E 000EA174 KVideo_GetXySubFilter
          4    F 000EA59C KVideo_HasOverlayImage
         44   10 000E9D3C KVideo_Initialize
         16   11 000EA32C KVideo_KeepAspectRatio
         29   12 000EA0A0 KVideo_MediaInfoServiceReady
         38   13 000E9EAC KVideo_OpenFile
         35   14 000E9F0C KVideo_OpenFile2
         36   15 000E9F0C KVideo_OpenFile2
         11   16 000EA3DC KVideo_Pause
         12   17 000EA3B8 KVideo_Play
          3   18 000EA5C0 KVideo_PutOverlayImage
         43   19 000E9D80 KVideo_Release
         14   1A 000EA370 KVideo_Repaint
         15   1B 000EA34C KVideo_Resize
         30   1C 000EA074 KVideo_SelectAudioStream
         20   1D 000EA074 KVideo_SelectAudioStream
         31   1E 000EA048 KVideo_SelectVideoStream
         21   1F 000EA048 KVideo_SelectVideoStream
         39   20 000E9E54 KVideo_SetLAVFiltersFolder
         33   21 000E9F90 KVideo_SetPlaybackRate
         34   22 000E9F70 KVideo_SetSearchMode
         23   23 000E9F70 KVideo_SetSearchMode
          7   24 000EA490 KVideo_SetStreamPosition
         41   25 000E9E28 KVideo_SetVideoRenderer
          6   26 000EA504 KVideo_SetVolume
         19   27 000EA0B8 KVideo_ShowMediaInfo
         28   28 000EA0B8 KVideo_ShowMediaInfo
         25   29 000EA1E8 KVideo_ShowXySubFilterPropertyPage
         10   2A 000EA400 KVideo_Stop
          2   2B 000EA658 KVideo_UpdateOverlayImage
         26   2C 000EA144 KVideo_XySubFilterState

  Summary

        F000 .rsrc
       DE000 UPX0
       5A000 UPX1
gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:16 Uhr.
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