Librairies PureBasic

Sujets variés concernant le développement en PureBasic
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Librairies PureBasic

Message par KarLKoX »

Bonjour !
A mon tour de poser une petite question :)
En ce moment, suite à des requêtes, j'essaye d'ajouter le support des Ogg Vorbis (et Mp3) en streaming pour le PureBasic. Mon code est bon, j'arrive à les lires, à faire tout ce dont on devrait avoir besoin, je l'ai compilé sous forme de DLL.
Mais j'aimerais aller plus loin en proposant directement une librairie pour PureBasic. J'ai donc créé mon projet pour MingW via son éditeur (wedit), quelques modifications dans les entêtes de la bibliothèque Ogg Vorbis et ca compile, nickel. Mais le problème est bien la ! Comment ce fait il que ca compile sans soucis alors que je n'ai même pas passé au linker les lib statiques du SDK de l'ogg vorbis ou de Winmm ?? Je me retrouve avec une librairie statique de 54 ko (elles sont générallement plus grosse, + de 400 ko avec Visual C++ pour le même code).
Il me faut compiler ma DLL en bibliotheque static pour que je puisse faire ma librairie pour le PureBasic pour n'avoir qu'un seul fichier.
A moins que je m'y prend mal ??


Note : mon code est en C et sera OpenSource, donc si vous le voulez pour voire ce qui ne vas pas, n'hésitez pas à me MP :]
"Qui baise trop bouffe un poil." P. Desproges
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Je n'y connais rien en C, alors je ne sais pas.

As-tu regardé l'exemple en C situé dans le répertoire Library SDK\LccWin32
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Oui oui, je l'ai regardé, j'utilise l'outil de Freak (library designer), j'arrive à le compiler sans problème et j'en ai conclue que je doit inclure mes sources depuis cet outil pour compiler la librairie (j'ajoute mes sources dans les options des fichiers à compiler) mais je me retrouve avec des erreurs complètement illogique (des membres de structure qui n'existe pas alors qu'ils sont bien la ...).
Je cherche, je cherche, merci pour le coup du main ;)

MAJ : Fiou ! Ca a été chaud mais c'est bon, ca fonctionne, un exe dos compilé avec la lib prend 166 ko et moins de 2 mo en ram, m'attendais à pire :]
Bon, maintenant, j'adapte le code, je fais un p'tit exemple, j'ajoute le mp3, quelques fonction manquantes et c'est bon, le plus dur est passé :)
"Qui baise trop bouffe un poil." P. Desproges
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Salut KarLKoX

je ne connais strictement rien au C mais je voudrais compiler certains codes, en particulier les librairies Freeimage , LibPng etc.
J'ai lu et relu le fichier texte du SDK de PB mais ça et rien c'est la même chose. Ce n'est pas fait pour les novices comme moi.

J'ai téléchargé Lcc-Win32 et installé le tout.
Je veux faire la lib à partir de l'exemple MessageBox.c mais je ne comprend même pas comment commencer. Pour cet exemple le descripteur existe (je n'ai pas de problèmes pour ces fichiers, c'est presque pareil pour les lib en ASM).

Tu saurais m'expliquer ou m'indiquer un tuto clair !!!!! sur comment faire un lib en C avec comme base tous les fichiers OK pret à la compile.

Si quelqu'un d'autre sait faire, je prend aussi :D

Il faut que ça soit clair :roll:

A+
Denis
Anonyme

Message par Anonyme »

Denis , tu veut faire une dll en c ?

prends un projet simple :

Code : Tout sélectionner

void Mafonction(){
}
peut pas faire plus simple :D
si tu compile pour faire une lib , et que tu scan cette lib pour connaitre les fonctions interne , tu verras apparaître ta fonction avec une jolie décoration du style :

Mafonction_3F....... etc...

la solution et donc de dire au compilo que l'on exporte les fonctions.
Avec

Code : Tout sélectionner

extern 'C'
la décoration dégage.

Code : Tout sélectionner

extern 'C'
{
 void Mafonction()
  {

  }
}
si tu utilises des dll dans ton projet , n'oublie pas de l'indiquer au linker , car même si cela compile , le programme qui utilisera ta lib plantera à l'execution.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Salut Cpl.Bator


non je ne veux pas faire une Dll, je veux créer une librairie PureBasic à partir du code C. Avec les imports, on est obligé d'avoir la Dll, c'est ce que je voudrais éviter.

Merci tout de même. Avec LccWin32 il y des exe dans tous les coins, je ne sais par comment faire pour faire la lib PB à partir d'un code C complet.

A+
Denis
Anonyme

Message par Anonyme »

je ne me suis jamais posé la question,
on ne peut pas importé des librairie statique? ( .lib , .a ) ?
Cela réglerais le problème. faut il aussi avoir les librairies sous ses formats.
Répondre