Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/03/2007, à 16:54

neurtixon

[Resolu] erreur --> called object "ligne" is not a function

J'ai un petit soucie de compilation
voici mon code :

#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>

#define LARGEUR 640
#define HAUTEUR 480

void setPixel(SDL_Surface *surface, int x, int y, Uint32 pixel);
void ligne(SDL_Surface *surface, int x, int epaisseur, Uint32 pixel);
void colone(SDL_Surface *surface, int y, int epaisseur, Uint32 pixel);
void grille(SDL_Surface *surface, int ligne, int colone, Uint32 pixel);

int main(int argc, char *argv[])
{

    SDL_Surface *ecran = NULL;

    SDL_Init(SDL_INIT_VIDEO); // Initialisation de la SDL
    ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
    SDL_WM_SetCaption("Nom de la fenetre", NULL);
    SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));

    SDL_LockSurface(ecran);
    grille(ecran,2,2, SDL_MapRGB(ecran->format, 0, 255, 0));
    SDL_UnlockSurface(ecran);

    SDL_Flip(ecran);
    getchar(); // met en pause le programme

    SDL_Quit(); // Arrêt de la SDL

    return EXIT_SUCCESS; // Fermeture du programme
}

void ligne(SDL_Surface *surface, int x, int epaisseur, Uint32 pixel)
{
    int i, y;
    for(i=x;i<=epaisseur+x;i++)
    {
        for(y=0;y<=HAUTEUR-1;y++)
        {
            setPixel(surface,i,y,pixel);
        }
    }
}

void colone(SDL_Surface *surface, int y, int epaisseur, Uint32 pixel)
{

    int i, x;
    for(i=y;i<=epaisseur+y;i++)
    {
        for(x=0;x<=LARGEUR-1;x++)
        {
            setPixel(surface,x,i,pixel);
        }
    }

}

void grille(SDL_Surface *surface, int ligne, int colone, Uint32 pixel)
{


    int pxligne, pxcolone, i;

    pxligne=(HAUTEUR-3*(ligne-1))/ligne;
    printf("\ntaille ligne px:%d",pxligne);
    for(i=1;i<=ligne-1;i++)
    {
        ligne(surface,(pxligne*i+i*3),3,pixel);


    }
    pxcolone=(LARGEUR-3*(colone-1))/colone;
    printf("\ntaille colone px:%d",pxcolone);
    for(i=1;i<=colone-1;i++)
    {
        colone(surface,(pxcolone*i+i*3),3,pixel);
        
    }

}

void setPixel(SDL_Surface *surface, int x, int y, Uint32 pixel)
{
    int bpp = surface->format->BytesPerPixel;

    Uint8 *p = (Uint8 *)surface->pixels + y * surface->pitch + x * bpp;

    switch(bpp) {
    case 1:
        *p = pixel;
        break;

    case 2:
        *(Uint16 *)p = pixel;
        break;

    case 3:
        if(SDL_BYTEORDER == SDL_BIG_ENDIAN) {
            p[0] = (pixel >> 16) & 0xff;
            p[1] = (pixel >> 8) & 0xff;
            p[2] = pixel & 0xff;
        } else {
            p[0] = pixel & 0xff;
            p[1] = (pixel >> 8) & 0xff;
            p[2] = (pixel >> 16) & 0xff;
        }
        break;

    case 4:
        *(Uint32 *)p = pixel;
        break;
    }
}

tous n'est pas important mais j'ai un soucie sur la fonction grille.
J'ai ecrit la fonction ligne est la fonction colone. Utilisé dans le main elles fonctionnent bien.
J'ai voulus les utiliser dans une fonction grill et la gcc me renvoie ce message :

mainc.c: Dans la fonction "grille" :
main.c:73: erreur: called object "ligne" is not a function
main.c:81: erreur: called object "colone" is not a function

je ne comprend pas

Dernière modification par neurtixon (Le 03/03/2007, à 20:28)


google chrome ... ouai et sinon on attend la version 1.0
au lieu de nous faire tester la version 0.2
parce que la beta 0.2 est pas tres aboutis quand meme

Hors ligne

#2 Le 02/03/2007, à 19:04

best_friend_fr

Re : [Resolu] erreur --> called object "ligne" is not a function

Salut

Le problème, c'est que tu as dans ta fonction grille des variables locales qui s'appellent aussi ligne et colone (au passage, c'est colonne).

Donc, il y a confusion au niveau de la compilation...


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#3 Le 03/03/2007, à 20:27

neurtixon

Re : [Resolu] erreur --> called object "ligne" is not a function

autant pour moi merci beaucoup


google chrome ... ouai et sinon on attend la version 1.0
au lieu de nous faire tester la version 0.2
parce que la beta 0.2 est pas tres aboutis quand meme

Hors ligne