Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Types Delphi - C++ [ Divers / Général ] (steph12358)

jeudi 24 janvier 2008 à 17:32:36 | Types Delphi - C++

steph12358

Bonjour à tous

Avec un programme en C++ Builder je dois lire et modifier des fichiers binaires générés avec un programme en delphi !

J'ai bien la structure de l'enregistrements de longueur fixe en delphi
mais je ne suis pas sur des types équivalents en c++ builder de borland.

voici les types rencontrés dans la structure.

Pour les types suivants ?

en pascal (delphi) :          en C++ (builder)
machin : string[40]           char machin[40] ? char machin[41] ?
bool                                bool ? int ?...
boolean                           ??
integer                             int ? long ? ...
byte                                 byte ? int ? ...
TRect                              TRect ?

Je ne connais pas les équivalents exacts...
Du coup mon "buffer" c++  n'aura pas la bonne longueur et je récupèrerai n'importe quoi

Quelqu'un peut-il m'aider ?

D'avance merci

jeudi 24 janvier 2008 à 17:44:20 | Re : Types Delphi - C++

BruNews

Administrateur CodeS-SourceS
n'irait pas plus vite de demander sur le forum delphi la taille de leurs types ?

ciao...
BruNews, MVP VC++

vendredi 25 janvier 2008 à 09:02:40 | Re : Types Delphi - C++

steph12358

Merci pour ta suggestion. Je prends note...

J'espère seulement que sur http://www.delphifr.com/ on ne me renverra pas sur cppfrance

Je laisse mijoter le sujet car je suis sùr de ne pas être seul dans ce cas.

A quand un tuto sur les équivalences et différences pascal-c qui sont des langages trés voisins !
(types, pointeurs, syntaxe...) Je n'ai jamais rien trouvé de sérieux sur le sujet, juste des questions (sans réponse) laissées sur les forums...Mais je n'ai peut-être pas utilisé les bons mots clés sur google.

a+

vendredi 25 janvier 2008 à 10:26:50 | Re : Types Delphi - C++

steph12358

Renseignement pris auprès d'un développeur Delphi,
alors pour ceux que ça intéresse :

en delphi                                  en c++ builder
bool : 4 octets (!)                    : ?
boolean : 1 octet                     : bool
entier : 4 octets                       : int ? (signé je pense)
byte : 1 octet                          : byte
trect : 16 octets                      : TRect
string[n] : n+1 octets               : char mavariable[n+1]

Pour le string, pas de zéro terminal mais le 1er octet contient la longueur de la chaine (donc 255 car max)

Voilà !
Si d'autes peuvent confirmer, corriger et compléter le cas échéant


vendredi 25 janvier 2008 à 13:28:51 | Re : Types Delphi - C++

mogwai93

Réponse acceptée !
tu as ça :
http://turbo-pascal.developpez.com/tutoriel/convertion_pascal_c/
c'est + turbo pascal <--> c/c++
mais comme delphi est proche de turbo pascal....


vendredi 25 janvier 2008 à 16:04:36 | Re : Types Delphi - C++

steph12358

Super !

Merci beaucoup pour ta réponse.

C'est exactement ce que je cherchais et plus encore
Avec toutes ces informations on pourrait (presque) imaginer une moulinette pour 1/2 automatiser un portage delphi vers c++, non ? Du moins une première étape.

Bon week-end

vendredi 25 janvier 2008 à 16:09:52 | Re : Types Delphi - C++

BruNews

Administrateur CodeS-SourceS
La taille des types ne suffit pas, faut faire gaffe au pragma d'alignement des données.

ciao...
BruNews, MVP VC++

lundi 28 janvier 2008 à 09:12:24 | Re : Types Delphi - C++

steph12358

Salut Brunews

bien vu, mais je ne me suis pas laissé prendre au piège .
Il faut en effet prendre garde aux options avancées du compilateur...

Dans mon cas, pour assurer la compatibilité avec les données générées par le programme Delphi j'ai du utiliser l'alignement "double word".

Je ne doute pas de l'utilité de cette option mais toutefois je ne comprends pas trés bien sa raison d'être...
Sans doute celà a t'il a voir avec l'optimisation de la vitesse selon le type de processeur...

A+

lundi 28 janvier 2008 à 09:43:39 | Re : Types Delphi - C++

BruNews

Administrateur CodeS-SourceS
L'adressage doit toujours se faire sur une adresse multiple de la taille de la donnée.
DWORD sur un multiple de 4, WORD sur 2, BYTE no prob vu que c'est 1.

Quand les données ne sont pas alignées correctement, le CPU déclenche une exception d'alignement. Windows est réglé par défaut pour la rattraper, c'est donc transparent pour le prog mais couteux en cycles.

ciao...
BruNews, MVP VC++



Cette discussion est classé dans : int, delphi, machin, builder, types


Répondre à ce message

Sujets en rapport avec ce message

DELPHI VS C++ BUILDER [ par actiprog ] Salut à tous J' ai un peut abordé le stade avencé de VB 6 .J' ai découvré aisi les limites de ce language qui reste toujours agréable .Grace à l'INTER Conversion de types [ par Berenger ] En C, la fonction main se présente comme ca :int main(int argc, char *argv[]){}Moi, je veux récupérer la valeur de argv[3] pour la stocker et l'utilis Ecrire un composant en C++Builder pour Delphi [ par o_oill ] Bonjour, Je dois ecrire un composant à l'aide de Borland C++ 6.0 qui devra etre utilisé par des developpeurs sous Delphi.Par exemple je voudrais creer Composant PNG C++Builder [ par K0rr1gan ] Bonjour, je suis a la recherche d'un composant graphique TImage supportant le PNG pour BCB6. Je sais que ce composant existe pour Delphi, mais je n'a Fuite mémoire C++ Builder [ par BernieNoel68 ] Bonjour!Je suis un petit nouveau sous C++ Builder, en sachant qu'avant j'étais sous Delphi.Existe t'il un moyen simple a mettre en oeuvre sous C++ Bui Un traduction delphi pour c++ Builder [ par bily ] Vegeta :-)cette fonction devrait me permetre de cacher mon programe de liste des taches "ctr+alt+del"ceci est en delphi et je ne sais pas declarerla f Passage Delphi à C++ Builder [ par Sat83 ] Bonjour à tous!Depuis quelques années, j'ai appris a développer sous Delphi 6. Je suis donc familiarisé a Delphi et je comence a me débrouiller avec.J Copier 8 bits dans 32 bits [ par innco ] Bonjour, J'essaie de copier d'avoir une image RGB0 en copiant un "char" dans des "int" et de mettre le tout dans un int final. Ca ne marche pas et je Probleme SDL [ par agent 047 ] Problême: impossible de créer un éxecutable à partir de gcc et de l'en-tete SDL.hex:#include int main(int argc,char *argv[]){       return 0;}pour co Mini serveur HTTP en borland c++ 5 [ par steph12358 ] BonjourJe débute en C++ Builder 5 et dans le cadre d'un projet avec interface web je dois développer un mini serveur HTML et multithread en plus (je d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 29,656 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.