Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++=>Delphi - Bräuchte Hilfe! (https://www.delphipraxis.net/27701-c-%3D-delphi-braeuchte-hilfe.html)

Kernel32.DLL 14. Aug 2004 10:30


C++=>Delphi - Bräuchte Hilfe!
 
Liste der Anhänge anzeigen (Anzahl: 1)
:wall:

*ganz doll gefrustet*

Seit Anfang der Woche versuch ich, aus der "Smartapp" - Demo von Microsoft eine sinnvolle Delphi-Übersetzung zu basteln, um diese gottverdammten "S.M.A.R.T." - Werte aus der Festplatte zu lesen.

Die eigentlich wichtigste Datei, "smart.h", ist bereits komplett übersetzt, lediglich an dieser verdammten "smartapp.c" beiss ich mir meine Zähne aus, weil dafür meine C++ Kentnisse nicht weitgenug gehen.

sofern ich das richtig mitbekommen habe, wird das lesen der SMART-Werte unter Win9x/ME mit der Smartvsd.vxd bewerkstelligt (was in der übersetzung ja nicht das Problem ist...), bei allen anderen WinVersion(NT,2000,XP & Co.) gehts direkt über "PhysicalDrive0". Vorher müssen aber noch Kommandos an das Device übergeben werden, mit denen Windows aufgefordert wird, die SMART-Werte (wenn vorhanden) auszulesen.

Mein Problem ist leider nur, dass ich die Syntax von C++ nicht vollständig verstehe. Am besten sieht man sich die main-Datei des anghängten Proggs an. Da sieht man, was bereits übersetzt wurde, und wo es noch hapert.

Findet sich hier jemand, der mir, wenn auch nur Ansatzweise, ein wenig unter die Arme greifen könnte??
(Insbesondere bei der Funktion "DoPrintData", von der ich ziemlich wenig Ahnung habe, wie das Übersetzt werden soll)
Es würden übrigens auch nicht stören, wenn die Übersetzung auf einer Konsolenanwendung wie das original beruhen würde, auch wenn das finale Progg ein GUI bekommen würde.


Interessanterweise gibt es im Web keine Delphi-Kompo, die einem die Arbeit abnehmen würde...(zumindestens nicht bei "Google","Altavista" und "Webcrawler") und auch kein Open-Source Delphi-Progg *seufz*.

Anmerkung: Ich hätte auch dem Übersetzer der Smart.h geschrieben, leider sei sein Englisch nicht besonders gut
(sagt er) und daher poste ich mein Problem lieber hier im Forum. :zwinker:

mfg
(ein sich langsam wieder beruhigender)
Daniel

P.S.: Microsofty könnte ja auch mal Beispiele für Delphi schreiben... Wäre zwar nicht in Microsofty's Interesse, aber in meinem!

Nun dann, die Anhänge:

Die original
Microsoft-App


[edit] Exe aus dem Archiv genommen [/edit]

Alter Mann 14. Aug 2004 15:02

Re: C++=>Delphi - Bräuchte Hilfe!
 
HI Kernel32.DLL,

Ich versteh nicht ganz. Wenn ich mir den "Rest" ansehe, sieht es doch ganz gut aus; Da dürfte
doch DoPrintData eigendlich keine Hürde sein :?:

Kernel32.DLL 14. Aug 2004 16:13

Re: C++=>Delphi - Bräuchte Hilfe!
 
Na ja, des war ja auch net schwer...

aber was mir u.a. Probs bereitet sind Sachen wie:

pDA = (PDRIVEATTRIBUTE)&pAttrBuffer[2]; {in der smartapp.c}

oder

DisplayIdInfo((PIDSECTOR) ((PSENDCMDOUTPARAMS)IdOutCmd)->bBuffer, <= was will mir das sagen?
&scip,
bIDCmd,
bDfpDriveMap,
i);



vielleicht bin ich momentan einfach zu blind... :coder2:

Pseudemys Nelsoni 14. Aug 2004 16:29

Re: C++=>Delphi - Bräuchte Hilfe!
 
hi

Zitat:

pDA = (PDRIVEATTRIBUTE)&pAttrBuffer[2]; {in der smartapp.c}
das düfte in delphi ca so aussehen:

Delphi-Quellcode:
pDA := PDRIVEATTRIBUTE(@pAttrBuffer[2]);
das "(PDRIVEATTRIBUTE)" ist ein typcast
und das "&" ist in C das gleiche wie "@" in Delphi


und das hier:

Zitat:

DisplayIdInfo((PIDSECTOR) ((PSENDCMDOUTPARAMS)IdOutCmd)->bBuffer, <= was will mir das sagen?
&scip,
bIDCmd,
bDfpDriveMap,
i);

würde in delphi so aussehen:

Delphi-Quellcode:
DisplayIdInfo(PIDSECTOR((PSENDCMDOUTPARAMS(IdOutCmd))).bBuffer,
@scip,
bIDCmd,
bDfpDriveMap,
i);

Kernel32.DLL 14. Aug 2004 18:34

Re: C++=>Delphi - Bräuchte Hilfe!
 
thx 4 that... :mrgreen:

wie gesagt, wenn man zu lange vor etwas sitzt... :coder2: :stupid:

[edit]nur für den Fall weiterer Vorschläge lass ich die Frage noch offen![/edit]

nailor 14. Aug 2004 18:38

Re: C++=>Delphi - Bräuchte Hilfe!
 
bei c werden die typcasts genau umgekehrt geklammert als bei delphi. d.h. der typ kommt in klammern, nicht der ausdruck

Kernel32.DLL 28. Apr 2005 22:30

Re: C++=>Delphi - Bräuchte Hilfe!
 
Da in dem letzten halben Jahr keine Antworten kamen, werden wohl auch in Zukunft keine kommen. Ich markiere die Frage daher als erledigt. Zumal ich die Entwicklung des Programms schon vor längerer Zeit eingestellt habe.

mfg
kernel32.dll

yankee 28. Apr 2005 22:38

Re: C++=>Delphi - Bräuchte Hilfe!
 
Warum will man eigentlich von C++ nach Delphi konvertieren?
Wenn man c++-teile in Delphi braucht, kann man die soch auch in eine DLL pakcne, oder sehe ich das falsch?

Robert_G 28. Apr 2005 22:47

Re: C++=>Delphi - Bräuchte Hilfe!
 
Zitat:

Zitat von yankee
Warum will man eigentlich von C++ nach Delphi konvertieren?
Wenn man c++-teile in Delphi braucht, kann man die soch auch in eine DLL pakcne, oder sehe ich das falsch?

Noch eine Bibliothek zwischen dir und der eigentlichen Funktionalität? :gruebel:

Luckie 28. Apr 2005 22:48

Re: C++=>Delphi - Bräuchte Hilfe!
 
Zitat:

Zitat von Robert_G
Zitat:

Zitat von yankee
Warum will man eigentlich von C++ nach Delphi konvertieren?
Wenn man c++-teile in Delphi braucht, kann man die soch auch in eine DLL pakcne, oder sehe ich das falsch?

Noch eine Bibliothek zwischen dir und der eigentlichen Funktionalität? :gruebel:

Und gerade das muss ich von einem .NET Framework Fanatiker hören. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr.
Seite 1 von 2  1 2      

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