CROCOLIB

cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 - 24 mars 2004 à 17:32
beeline Messages postés 83 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 9 juin 2009 - 19 juil. 2004 à 18:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19337-crocolib

beeline Messages postés 83 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 9 juin 2009
19 juil. 2004 à 18:02
mais je doit pouvoir la recompiler moi meme non ??

quand j'essaye: (nouveau project => static librairy)

j'ajoute le fichier du zip crocoli.h et croco_func.c
je compile

et la j'ai un ptit message d'erreur :
fatal error C1010: unexpected end of file while looking for precompiled header directive

qui pointe sur la derniére ligne de croco_func (évidement )

Une ptite idé pour me permettre de progresser ?
Que faut'il que je change dans le code ?
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
17 juil. 2004 à 02:50
heu... ma reponse va te sembler stupide, mais je n'ai rien de mieux... la lib a ete compiler avec Visual Studio .NET, et c'est la raison pour laquel ca ne fonctionne pas avec Visual C++ 6.0.

dsl, il faudrait que je recompile la lib avec Visual C++ 6.0, mais je ne peux pas l'installer, je suis sincerement desoler.
beeline Messages postés 83 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 9 juin 2009
16 juil. 2004 à 18:59
ah ... il me semble que en repartant de zéro on avance
j'avai peut etre oublier d'ajouter le crocolib.lib dans les setting

Mais j'ai maintenant:

Linking...
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
crocolib.lib(crocolib_funcs.obj) : fatal error LNK1103: debugging information corrupt; recompile module
Error executing link.exe.

Test.exe - 1 error(s), 1 warning(s)

et je ne sais toujours pas analyser et comprendre mes erreurs
beeline Messages postés 83 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 9 juin 2009
16 juil. 2004 à 18:16
le include n'a pas l'air de fonctionner nan ?
J'ai pourtant mis les fichier du zip à coté de mes fichiers sources ... et tout bien comme il faut
beeline Messages postés 83 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 9 juin 2009
16 juil. 2004 à 18:10
dsl mais moi je n'y arrive pas. ( j'entent d'ici, le "Oh non, mais c'est pas possible, j'attire les débutant )
et ben oui ..

j'ai essayer le bout de code que tu donne dans ton pdf ( fct main ) tout comme ta source de test et j'ai toujours les meme erreurs lors de la compilation
je travaille avec visual studio 6, et j'aimerai savoir si il y a une manip a faire pour le configurer.

sinon voila, si qlq a une idée ?

----------------------------------------------------

Nouveau projet => empti
recopiage de la fct simple donner dans le pdf ds un fichier main.cpp
compil..
et voila mes erreurs:

--------------------Configuration: Test - Win32 Debug--------------------
Compiling...
main.cpp
Linking...
main.obj : error LNK2001: unresolved external symbol _CrocoRelease
main.obj : error LNK2001: unresolved external symbol _CrocoUpdate
main.obj : error LNK2001: unresolved external symbol _CrocoSetData
main.obj : error LNK2001: unresolved external symbol _CrocoCreate
Debug/Test.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.

Test.exe - 5 error(s), 0 warning(s)
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
25 mars 2004 à 00:15
k, je vais voir tout ca
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
24 mars 2004 à 22:48
402 c'est fait expres, analyse un peu plus et mieux l'algo, et tu comprendra...

sinon pour la souris et le clavier, aparement tu as pas lu ce que j'avais ecris au message juste avant, mais c'est pas grave, en gros, j'ai pas l'intention de les gerer dans la crocolib, c'est fait expres...

cherche sur ce site, j'ai poster un source pour piloter un joystick uniquement a l'aide de l'api win32, et pour le clavier, c'est meme pas la peine, c'est tellement pas dure, tu trouvera tout ce que tu as besoin pour ca sur ce site...

pour la souris, l'integrer a la crocolib n'est pas la bonen solution je pense, mais enfin bref, tu sais rien ne t'enpeche d'utiliser la crocolib, et de faire appel aux fonctions dans ton code, mais en dehors de la crocolib... si un jour tu as besoin d'utiliser 2 lib, tu va pas chercher les sources et les mixer en une seul lib, ca serais stupide...

pour le texte c'est un poil plus compliquer, il faut tracer les caracteres directement en bitmap, le mieux c'est que tu crreer plein de bitmap avec chacun une lettre dessus, et que ensuite tu aille "coller" dans le buffer les lettres que tu veux pour en faire du texte
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 22:25
kk
dis je sais pas si tu as lu le dernier message, mais j'ai trouvé une erreur dans le test, main.c: varia doit etre égal à 400 et non 402

sinon, tu devrais rajouter la gestion souris-clavier.

l'intérêt d'avoir les sources c'est de pouvoir modifier pour avoir à sa convenance. Par exemple, pour gérer la souris, j'ai trouvé comment faire intervenir la souris dans proc_fonc_bidule:
if(message == WM_MOUSEmachintruc)...

Par contre j'essaye de rajouter du texte et ca a l'air compliké... une petite aide?
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
24 mars 2004 à 22:08
oulala, bon refait un projet depuis zero parceque la ton truc c'est un chant de bataille...

tu fait un nouveau projet win32 (console c'est moins chiant) (empty) et dedans tu va dans les proprieté de projet, et tu chercher un coin link ou linker, et la en cherchant un peu tu devrais trouver un truc genre les lib statiques qui sont deja a linker avec le projet, la tu rajoute juste crocolib.lib (tu etais pas obliger de la copier dans le dossier de lib, mais ca marche quand meme)

ensuite, dans ton code source, la ou tu veux utiliser les fonctions croco* il te suffit juste d'inclure le fichier crocolib.h comme ceci : #include "crocolib.h" et le fichier crocolib.h doit etre en racine de ton dossier de projet, c'est tout, tu n'as pas besoin du code source de la lib, je l'ai donner parceque c'est un site de code source, mais franchement tu en as vraiment pas besoin pour utiliser la crocolib...

de plus, elle est fait pour l'affichage, et elle est surtout fait pour etre simple, si tu avais lu le PDF entier tu le serais... tu va reprocher a OpenGL de pas faire Fax et Browser Web ??

bref, j'espere que tu aura pas trop de probleme a l'utiliser
a++
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 20:26
tiens, j'ai des problêmes d'alzheimer moi... 3 fois le même message...

Bon, ben, j'avance à grand pas car j'ai eu la curiosité de cliker sur le bouton 'déboguer' de la fenêtre ki indike ke mon application a effectué un machin non conforme, et... Visual s'ouvre!!! miracle...
Bon toujours est-il ke un bug est montré dans la boucle d'affichage des lignes. Et il y a de koi!!! la taille du tableau des couleurs est 400 alors ke le test d'arrêt (varia) de la boucle est 402!!! C'est bizarre ke tu aies pu compilé le test et ke ce dernier fonctionne...
Enfin bref, le premier prog ke j'avais fait (ou j'ai copié-collé les différents éléments du prog) marche maintenant et j'ai mon dégradé!!

cooool

Le mieux c'est ke ta librairie incorpore la gestion souris-clavier... mais bon c'est déjà ca. Disons ke je vais me débrouiller pour la souris (pour savoir comment fonctionne l'accès aux librairies aussi, t'inkiète!)

aller, ca vaut bien un 8/10
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 20:14
jdi des conneries moi... le problême lié au fait ke printf, FILE, fopen... ne sont pas reconnus, c'est parceke il n'y avait pas conio.h au début du code...
bon, ca résout pas les autres pb, mais j'avance! ;)
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 20:09
jdi des conneries moi... le problême lié au fait ke printf, FILE, fopen... ne sont pas reconnus, c'est parceke il n'y avait pas conio.h au début du code...
bon, ca résout pas les autres pb, mais j'avance! ;)
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 20:09
jdi des conneries moi... le problême lié au fait ke printf, FILE, fopen... ne sont pas reconnus, c'est parceke il n'y avait pas conio.h au début du code...
bon, ca résout pas les autres pb, mais j'avance! ;)
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 19:29
ok pour les explications (les noms des fonctions sont suffisamment explicites de toute façon)

Bon j'ai kelkes notions en c++, alors pour les liens vers les librairies, j'essaye de copier crocolib.h et crocofunc.c dans les différents répertoire 'include' ke l'on peut trouver dans visual (il y en a 3:). J'ai aussi essayé de mettre crocolib.lib dans les diff rep 'lib', mais j'ai toujours le même message d'erreur signalant ke les fonctions croco ne sont pas trouvées. Apparemment, ce n'est pas ce k'il faut faire... Si tu pouvais m'aiguiller...

j'ai aussi remplacé #include "../crocolib.h" par #include "crocolib.h" ou #include <crocolib.h>
dans le .cpp (appelé go.cpp), j'ai copié les contenus des fichiers misc.c et main.c et dans le repértoire ou est stocké le projet, j'ai supprimé tous les autres fichiers, autre ke ceux générés par visual et go.cpp (dans ce rep, il n'y a donc pas de croco et cie...)

j'ai mis en commentaire la ligne printf dans le main()
Bref, j'ai fait ce k'il faut pour ke tout se compile bien... si le fichier crocolib.h est trouvé (la preuve k'il n'est pas trouvé: dans ce dernier il y a un printf ou FILE, ki ne sont pas reconnus vu ke je suis en .cpp, et ki ne me sont pas signalés comme erreur lors de la compil')
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
24 mars 2004 à 18:40
j'utilise Visual Studio .NET

c'est pas plus long d'utiliser la lib, au contraire, c'est fait justement pour etre integrer tres rapidement.

tu as le dossier de test normallement, si tu l'as pas et/ou si tu comprend pas tout, regarde ce PDF :

http://crococode.free.fr/crocolib/CrocoLib.pdf

tout est bien expliquer sauf comment foutre une lib dans un proj, mais c'est vraiment pas tres compliquer, et si tu bloque vraiment la dessus, dit le moi, je t'expliquerais

a la fin du PDF, il y a des liens pour tout ce que tu cherche
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 18:21
bon ben si tu vois pas le problème, je risk pas de le voir...
en fait, je sors de Java (j'ai jamais vraiment eu à me soucier d'apporter de nouvelles librairies) et je me mets à Visual mais le graphisme pose apparemment problème. Dans un premier temps, je 'dépiote' ton programme pour essayer de comprendre un minimum comment ca marche et je me suis dis k'en flankant tous les codes du test + les fonctions trouvées dans croco_func() dans un seul ca marcherait (disons ke je suis TERRIFIE par la moultitude de fichiers ke comporte une application VIDE zindozs...). Une fois les copiés collés effectués, ca compile et construit (F7) mais ca exécute bizarre: la fenêtre 'test zindozs' s'ouvre vide (disons transparente) et un message d'erreur apparaît aussitôt
Alors bon, je veux bien essayer de passer par les include. Mais à première vue c'est plus long! (2-3 trois clics en plus, lol)
Dis-moi, ton prog doit marcher si le main() est stocké dans un .cpp (et non dans un .c, j'ai viré les printf etc...), non?

Pour faire simple, pourrais-tu m'envoyer le projet du dossier 'test' (.dsp, .dsw)? Apparemment tu utilises VC++6 aussi non? Visual, je commence tout juste (pepin_et_grenouille chez yahoo.fr)

au fait, test.exe fonctionne et j'y vois un dégradé horizontal
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
24 mars 2004 à 17:44
je tiens aussi a remercier ceux qui m'ont mis 3/10, c'est courageux d'expliquer pourquoi...
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
24 mars 2004 à 17:43
je vois pas trop ton probleme, par contre ce que je me demande, c'est pourquoi je me creve le cul a faire une lib pour tout la depioter et la foutre a plat ??

tu inclue la lib dans ton projet, tu #include "crocolib.h" et c'est partit, tu as jamais utiliser de lib de ta vie ?
cs_artichaud Messages postés 36 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 février 2010 1
24 mars 2004 à 17:32
salut, ca a l'air sympa et j'essaye de m'en servir mais j'ai des problèmes: en mettant tous les codes du test dans un seul .cpp, j'arrive à compiler (en mettant cependant en commentaire la fonction crocoWriteBMP, inutilisée pour le test du dégradé, comportant des appels de fonction C comme printf)

j'ai ceci (j'enlève le contenu, inchangé, des fonctions pour faire plus court):

#include <windows.h>
#include <conio.h>

int CrocoCreate(char *title, int w, int h);
int CrocoSetData(int *buffer);
int CrocoUpdate();
int CrocoClear();
int CrocoPutPixel(int x, int y, int color);
int CrocoWriteBMP(char *filename);
int CrocoRelease();

//(ces prototypes sont issus de crcolib.h)

#define SC_ZOOM_MASK 0x400
#define SC_ZOOM_1x1 0x401
#define SC_ZOOM_2x2 0x402
#define SC_ZOOM_4x4 0x404

#define CROCO_SWAP(a, b) (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b)))

static HWND _hwnd;
static HDC _win_hDC;
static WNDCLASS _win_class;
static int _win_w;
static int _win_h;
static int _croco_w;
static int _croco_h;
static int *_croco_buffer;
static BITMAPINFO _bmp_info;

typedef unsigned char uchar;

LRESULT CALLBACK _window_proc_func(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam){}

int CrocoCreate(char *title, int w, int h){}

int CrocoSetData(int *buffer){}

int CrocoUpdate(){}

int CrocoPutPixel(int x, int y, int color){}

/*
int CrocoWriteBMP(char *filename){}
*/

int CrocoClear(){}

int CrocoRelease(){}

void Ligne(int x, int hauteur, int color){}

void MakeDegrader(int tab_size, int *tab){}

// Ces fonctions sont issus de crocofunc.c et de misc.c

int buffer[400 * 400];

int main(int ac, char **av){}

// issu d'un copié-collé de main.c

sur win98se, VC++6, un .exe est créé mais l'exécution provoke une erreur (application non conforme gnagnagna) juste après l'ouverture de la fenêtre 'test windows'.

A première vue, keski ne va pas?

j'insiste sur le fait ke je ne fais ke des copiés-collés des différents .h et .c, j'ai enlevé les #include crocolib.h ainsi ke les commandes issues du c tels ke printf et la fonction crocowriteBMP
Rejoignez-nous