begin process at 2012 05 27 16:13:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > EXTRACT ID3 TAG V1 ET V2

EXTRACT ID3 TAG V1 ET V2


 Information sur la source

Note :
9 / 10 - par 5 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichiers / Disque Niveau :Expert Date de création :08/01/2004 Vu / téléchargé :5 578 / 698

Auteur : arc59

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Ce programme permet de récupérer les tag en version 1 et version 2 et de les modifier en version 1.
Il permet egalement de modifier les tag en fonction du nom de fichier et inversement.

Je n'ai pas réussi à mettre ses fonctions dans une DLL donc si vous savez le faire, je suis intéréssé.

J'aimerai avoir connaissance de vos developpement basé sur ces fonctions.

Il y a sans doute des bugs mineurs du genre effet de bord pour les tag en version 1. si vous en trouvez, merci de me les faire parvenir.

@+



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

COMPTER LE NOMBRE DE PAGES D'UN FICHIER PDF par Renfield
Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel

Commentaires et avis

Commentaire de guillaumeM le 09/06/2004 11:41:52

Oh punaise :-) je cherchait depuis longtemps le moyen de modifier les tags a partir du nom de fichier, eh ben j'ai trouvé merci !

Commentaire de arc59 le 10/06/2004 09:24:48

Mais de rien. Attention tout de meme aux effets de bord.
Je crois que certaine fonction deconne lorsque les tags du titre par exemple ont une longueur > 30, ce qui est la limite maximum pour les TAG en version 1.

Commentaire de ribos le 02/08/2004 02:58:53

C'est super, je desesperai à enfin trouver des infos là dessus !!
Merci enormement !!

Commentaire de Morgue le 23/11/2004 13:54:25

Tout comme ribos
Encore Merci

Commentaire de benoit1212 le 28/02/2006 17:06:35

Je ne peut pas exécuter le fichier, quel logiciel faut-il pour le .c ???????

Commentaire de Prince_Hogo le 01/03/2006 20:53:46

Je ne peux pas m'empêcher de sourire pour le commentaire de "Benoit1212".

Un logiciel pour lancer un fichier .c . Trop XD

M'enfin, éxécuter du code C en direct pourquoi pas, c'est possible .p mais tellement difficile .]

Commentaire de arc59 le 02/03/2006 08:36:22

il faut que tu compile le fichier c. Pour cela, tu trouvera des compilateur gratuit comme dev c++

Commentaire de benoit1212 le 02/03/2006 18:53:57

J'ai le compilateur mais comment on fait pour récupérer les tags je comprends pas !

Commentaire de capgil le 24/05/2006 02:05:23

Cela fait assez longtemps (pas loin de 10 ans...) que j'ai plus fait de dll, j'espère que je vais pas dire trop de betises ;). Quand j'aurai un peu de temps, je posterai ici une conversion complète et opérationnelle avec applications de test (C (Win32 Console) et C++ (MFC)). D'ici là je vous laisse quelques pistes pour y arriver par vos propres moyens.

Ce qui suit devrait permettre de faire une DLL et une application qui utilise la dll en compilant le tout avec Visual C++. Si vous utilisez un autre compilateur, il faudra sans doute modifier les directives  contenant __cplusplus et __declspec(...) qui sont, si ma mémoire est bonne, specifiques au compilateur de Microsoft.

Par sécurité, je vous recommande de fixer l'alignement des structures à 1 octet tant dans la dll que dans l'application, ceci afin d'éviter les débordements. Pour les utilisateurs de VC++, il me semble qu'il suffit d'ajouter #pragma pack 1 dans le fichier d'en-tête commun à la dll et à l'application, avant d'attaquer les declarations de structure, sinon il reste toujours la possibilité de le définir au niveau du projet.

Il y aura bien sûr deux projets différents celui de la dll propremement dite et celui de l'application qui l'utilise. Pour les utilisateurs de Visual C++, créez votre dll en utilisant un projet de dll (vu que le source original est écrit en C pur sucre, préférez l'assistant DLL Win32 s'il existe encore ;) ) et votre application avec l'assistant qui va bien. Dans le projet d'application il vous faudra ajouter la lib de la dll si vous choisissez un link statique. Vous pouvez bien entendu passer par un link full dynamique mais vous devrez alors reprototyper toutes les fonctions que vous utilisez dans la dll en pointeur sur fonction, et vous découvrirez alors (si vous ne connaissez pas) les joies du LoadLibrary et du GetProcAddress.

Pour la transformation en dll, il faut modifier quelque peu le source

Pour bien faire les choses:

Il faut eclater le fichier c en 3 fichiers

- le fichier header commun à la dll et aux applications:
========================================================

Il contiendra les prototypes des fonctions de la dll avec les directives de link et d'export qui vont bien. Attention ce fichier ne doit contenir que des déclarations. Typiquement il devra avoir la tête suivante:

// Fichier mydll.h
#ifdef _DLL_NAME_DLL_DEF_
#define _DLL_LINK_DIRECTIVE_ __declspec(dllexport)
#else
#define _DLL_LINK_DIRECTIVE_ __declspec(dllexport)
#endif

// Inclure les bons en-tete
#ifndef __cplusplus
// Include C normaux
#else
// pour les MFC
#include "stdafx.h"
// Pour les autres, je ne sais pas, l'aide de votre compilo est votre amie ;)
#endif

#ifdef __cplusplus //  on compile en C++ il faut donc dire au linker que les fonctions sont en C
extern "C" {
#endif // __cplusplus

// declaration des elements exportés par la dll

_DLL_LINK_DIRECTIVE_ typedef struct MyStruct{...};
_DLL_LINK_DIRECTIVE_ ReturnType MyFunction(MyParamType MyParam, ...);

#ifdef __cplusplus
};
#endif // __cplusplus

// Fin du fichier d'en-tête

- Le fichier source de la DLL
==============================

Il contient les sources de la DLL proprement dite, c'est à dire le point d'entrée et les fonctions de la DLL, qui seront accessibles depuis les applications appelant la dll. Il devrait ressembler à ça

// Fichier mydll.c

#define _DLL_NAME_DLL_DEF_
#include "mydll.h"

// le point d'entrée
BOOL WINAPI DllMain( HANDLE hModule, DWORD dwReasonToCall, LPVOID lpReserved)
{
switch(dwReasonToCall){
case DLL_PROCESS_ATTACH: // Init sur load par un process
break;
case DLL_PROCESS_DETACH: // Unload by process
break;
case DLL_THREAD_ATTACH: // Init pour un thread
break;
case DLL_THREAD_DETACH: // Unload pour un thread
break;}

return TRUE;
}

// Ensuite les fonctions de la DLL

_DLL_LINK_DIRECTIVE_ ReturnType MyFunction(MyParamType MyParam, ...)
{
// le code de la fonction
}

// Fin du fichier mydll.c

- Enfin le code des applications
===========================================================

En version ultra-simplifiée, Il ressemblera à cela

// myprog.c
#include "mydll.h"

int main (int narg, char** lpargs)
{
// Do the job
}
// Fin du fichier

Voilà, j'espère que ceci vous sera utile, je n'ai malheureusement pas le temps d'aller plus loin sur le sujet pour l'instant. J'ai donné ces indications de mémoire, j'espère qu'elles pourront vous être utiles et que ma mémoire est restée fiable.

Cordialement,

Capgil

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales