Bonjour, comment inclure un fichier binaire a un projet C++ sous codeblocks ?, il s'agit de données brutes, j'ai cherché mais je n'ai pas trouvé.
Merci.
Bonjour, comment inclure un fichier binaire a un projet C++ sous codeblocks ?, il s'agit de données brutes, j'ai cherché mais je n'ai pas trouvé.
Merci.
Je ne comprends pas qu'elle serait ton intérêt à faire ça. Si tu veux juste lire ton fichier avec ton programme il te suffit de le mettre à un emplacement précis sur ton disque dur et de donner le chemin complet à ton programme pour ensuite faire ce que tu veux.
Bonjour,
je suis à peu près parfaitement sûr que tu ne veux pas "inclure de fichier binaire" mais tout au plus "le lire".
Tu peux ajouter le fichier de ton choix dans un projet, seuls les .c et .cpp seront de toutes façons compilés.
Et pour ajouter un fichier, un simple glisser/déplacer depuis l'explorer fait l'affaire.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
En fait je veux faire une intro (demo), donc a la fin je ne dois me retrouver qu'avec un seul fichier exécutable, je pense que je vais passer par l'asm pour réussir.
Merci.
j'ai un peu progressé dans mes recherche en utilisant ce bon vieil assembleur, en testant j'ai réussi à compiler ça :
Maintenant le défi est de récupérer l'adresse de "label:" dans mon programme en c++.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void FONCTION() { __asm( "label: .incbin \"coords\""); }
Merci pour votre aide.
En fait tu veux exécuter du code contenu dans le fichier ? Si c'est une librairie il y a des fonctions pour ça, si c'est un programme compilé par contre...
L'astuce classique c'est de faire une première passe sur les fichiers que tu veux intégrer avec un programme du style bin2c (ou prog fait maison, c'est très simple à faire) qui génère à partir d'un fichier quelconque un .h contenant un énorme tableau d'unsigned char dont chaque case représente un octet du fichier en question.
Par exemple une ressource du style intro.wav après passage à la moulinette bin2c génèrera un fichier intro.h contenant un tableau du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #define INTRO_LEN 33792 static unsigned char intro[] = { 0x4d,0x5a,0x90,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xff, 0xff,0x00,0x00,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x0e, 0x1f,0xba,0x0e,0x00,0xb4,0x09,0xcd,0x21,0xb8,0x01,0x4c,0xcd,0x21, 0x54,0x68,0x69,0x73,0x20,0x70,0x72,0x6f,0x67,0x72,0x61,0x6d,0x20, // etc etc etc };
Si c'est juste pour "insérer les fichiers dans l'executable", alors tu n'as rien à faire que de déclarer des variables const unsigned char[] = {le contenu du fichier}; où le contenu du fichier sera les valeurs de chaque octet du fichier.
En tous cas je ne vois pas ce que l'assembleur t'apportera de plus.
Enfin, au final je ne vois pas du tout l'intérêt d'une telle manip faut dire, c'est bien plus simple d'avoir les données partagées et stockées dans leur fichier respectif !
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Comme je le disais plus haut, je veux faire une intro, le format de ce genre d'applications c'est un seul fichier exécutable, je vais peut être opter pour l'inclusion de tableau si je n'arrive pas a inclure directement, mais dans ce cas il faut bien que je convertisse les fichier en tableau "à la main" ?
Et il y a t-il une limite de taille pour les tableau ? (car la ça risque de faire de vraiment gros tableaux).
Merci
La limite de ton tableau sera la limite de la mémoire que ton pc sera capable d'allouer à ton programme, en gros ta RAM, donc je ne pense pas que t'as à t'inquiéter pour ça. Par contre j'ai toujours l'impression que tu veux exécuter ce fichier. Si tel est le cas il y a des fonctions pour ça (CreateProcess sous win et fork / exec* sous unix).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager