Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Allegro GUI - kompilacja color.c

Ostatnio zmodyfikowano 2009-08-17 20:32
Autor Wiadomość
SideC
Temat założony przez niniejszego użytkownika
Allegro GUI - kompilacja color.c
» 2009-08-16 14:07:07
Witam, próbowałem skompilować, za pomocą DEV-C++4.9.9.2, mieszacz kolorów (by Revin Guillen). Dlaczego w linii kończącej deklarację tablicy dialogów wyskakuje 3-krotnie błąd: invalid conversion from 'int(*)(void*,int)' to 'void*'?
P-9502
DejaVu
» 2009-08-16 15:33:29
Fragment kodu poproszę z miejscem w którym występuje błąd.
P-9506
pixelmaster
» 2009-08-16 18:37:16
musisz skompilować plik jako c nie c++ w opcjach projektu to ustawiasz
P-9532
SideC
Temat założony przez niniejszego użytkownika
» 2009-08-17 13:51:50
Trafiłem tylko na: Opcje proj.->Pliki->ColorC_main.cpp->wyłącz 'kompiluj jako C++', ale nie pomaga.
Kod:
C/C++
#include <allegro.h>
int update_color( void * dp3, int d2 );
DIALOG color_builder[] =
{
    /* (dialog proc)     (x)   (y)   (w)   (h)   (fg)  (bg)  (key) (flags)  (d1)  (d2)  (dp)  (dp2)         (dp3) */
    { d_clear_proc, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, NULL },
    { d_box_proc, 0, 0, 100, 100, 0, 254, 0, 0, 0, 0, NULL },
    { d_slider_proc, 10, 110, 16, 64, 1, 0, 0, 0, 63, 0, NULL, update_color, NULL },
    { d_slider_proc, 42, 110, 16, 64, 2, 0, 0, 0, 63, 0, NULL, update_color, NULL },
    { d_slider_proc, 74, 110, 16, 64, 4, 0, 0, 0, 63, 0, NULL, update_color, NULL },
    { NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }
}; //kompilator wskazuje na tę linię
/* ID suwaka w dialogu (liczymy od 0) */
#define S_RED    2
#define S_GREEN  3
#define S_BLUE   4
/* wywołania suwaków (parametry są
* zignorowane, ponieważ już wiadomo jakie dane
* przekazują kontrolki)
*/
int update_color( void * dp3, int d2 )
{
    RGB col;
    col.r = color_builder[ S_RED ].d2;
    col.g = color_builder[ S_GREEN ].d2;
    col.b = color_builder[ S_BLUE ].d2;
    vsync();
    set_color( 254, & col );
    return 0;
}
int main()
{
P-9560
pixelmaster
» 2009-08-17 15:45:15
spróbuj z plikiem zapisanym z rozszerzeniem *.c i wyłączeniem kompilacji jako c++
u mnie to działa
P-9562
DejaVu
» 2009-08-17 17:00:45
Przed update_color dopisz (void*), czyli:
( void * ) update_color
P-9567
SideC
Temat założony przez niniejszego użytkownika
» 2009-08-17 20:32:08
To, co zaproponował pixelmaster, rzeczywiście działa, ale miałem problemy z dołączeniem innych bibliotek, np. string.
Wpisanie (void*) rozwiązuje sprawę.
Dziękuję wszystkim.
P-9574
« 1 »
  Strona 1 z 1