- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Samsung Galaxy Z Fold3 5G - foldi evolúció
- Fényképeken a Google Pixel 9 Pro
- Android szakmai topik
- OnePlus 7 Pro - hétpróba
- Huawei P30 Pro - teletalálat
- Macrodroid
- Samsung Galaxy A54 - türelemjáték
Hirdetés
-
Exkluzív funkcióval tenné vonzóbbá az ARM-os PC-ket a Microsoft
ph A Windows 11 AI Explorer szolgáltatása jelenleg csak ARM-os processzoron üzemképes.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Megrendszabályozza a Pornhubot az EU
it A DSA keretében a Pornhubot, a Stripchatet és az XVideost is szigorú szabályokkal állítja szembe az EU.
-
Mobilarena
Új hozzászólás Aktív témák
-
tomcs
őstag
válasz emitter #1549 üzenetére
vszeg azert mert extern..
az extern arra valo hogy megadod a fv interfeszet, es jelzed hogy ennek nem lesz implementacioja a forrasaid kozott. viszont a forrasodban ettol fuggetlenul tudod hasznalni.
mivel azert nem art, ha megis van ilyen fv, a linker meg tudni fog rola es keresni fogja, azaz forditasi (pontosabban linkelesi) hibat kapsz, ha az objektjeid kozott nem talalta meg ezt az azonositot.
tipikusan akkor kell, ha vmilyen mas nyelven akarsz megirni egy fuggvenyt, pl assemblyben, leforditod objekt file-ra, meg a projektedet is es a kettobol kapott objekt fileokat linkeled ossze.
btw headerekben egyebkent sem illik implementaciot keresni -
SaNyEe
aktív tag
Üdv, kellene használható MAGYARnyelvű prolog könyv/jegyzet ami az alapoktól tanít mindent.
Létezik ilyen? Aki tud valamit írjon, THX-- end of transmission --
-
emitter
őstag
válasz Jester01 #1551 üzenetére
ez alapján próbálkoztam, már működik a getch() , csak akadtak egyéb problémák...
[link]
...
initscr();
cbreak();
do{
printw(''Pause - 'p' '');
printw(''\nResume - 'r' '');
printw(''\nStop - 's'\n'');
refresh();
do{
switch( c=getch() ){
case 'p' :
printf(''\nPaused\n'');
Mix_PauseMusic();
break;
case 's' :
printf(''\nStopped\n'');
Mix_HaltMusic();
exit(1);
break;
default :
break;
}
}
while(c!='r');
Mix_ResumeMusic();
}
while (Mix_PlayingMusic());
endwin();
...
szóval ez a kódom, de nagyon érdekes dolgokat csinál: ha 's'-t nyomok, akkor leállítja ugyan, kilép a progiból, csak:
- a promptot behúzza egy tabbal, és nem látom, amit beírok utána
- amit látatlanba írok parancsot, végrehajtja, de minden egyes kiírást eltol egy tabbal..
- ctrl+c-re sem lép ki ebből a hülyeségből, egy újabb tabbal odébbrakja a promptot
- csak exit-re lép ki a konzolból
ez mitől lehet??? -
-
emitter
őstag
válasz Jester01 #1557 üzenetére
köszi!
egy újabb kérdés, ezt kapom fordításkor:
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$ gcc -Wall -lncurses -lSDL -lSDL_mixer -o mixer-demo mixer-demo.c
mixer-demo.c: In function 'LoadMusic':
mixer-demo.c:128: warning: implicit declaration of function 'Mix_LoadMUS_RW'
mixer-demo.c:128: warning: assignment makes pointer from integer without a cast
mixer-demo.c: [link]
ezt a kódrészletet, amivel pufferből mix_music-ot csinálok, itt találtam: [link]
a srácnak se működött valami miatt, de nem értettem, hogy mi is pontosan a megoldás, amit válaszoltak neki.. -
emitter
őstag
válasz Jester01 #1559 üzenetére
no és én most mit csináljak ezzel?
music = (Mix_Music*) Mix_LoadMUS_RW(rw); // ---itt van a forditasi hiba---
ezt írtam, de ettől még éppúgy implicit deklarációra hivatkozik...
el tudnád magyarázni az utolsó link alapján, hogy a srácnak hogyan sikerült megoldani hasonló problémáját? sajna nekem nem világos a válaszokból ([link])
köszi -
emitter
őstag
Fordítási hibák, valszeg én vagyok a béla, de mi a rák van ezzel
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$ gcc -o mixer-music mixer-music.c -Wall -lncurses -lSDL -lSDL_mixer -I/usr/include/SDL
mixer-music.c: In function 'Mix_LoadMUS_RW2':
mixer-music.c:187: error: invalid application of 'sizeof' to incomplete type 'Mix_Music'
mixer-music.c:192: error: dereferencing pointer to incomplete type
mixer-music.c:280: error: dereferencing pointer to incomplete type
mixer-music.c:282: error: dereferencing pointer to incomplete type
a kérdéses sorok a kódomban:
187: music = (Mix_Music *) malloc(sizeof(Mix_Music));
192, 280, 282: music->error = 0;
---
megnéztem, a patchelt SDL-példakódban a MixMusic* típus így néz ki:
static Mix_Music * volatile music_playing = NULL;
ezalapján hol lehet a hiba?
köszi!
ui: mindez egy hivatalos SDL-példakódban volt..
[Szerkesztve] -
KMan
őstag
Hali! turbo pascal 7.0-at szeretnek windows 2000 alatt futtatni. akarhogy probalom nem akar osszejonni. Guglizok meg minden de semmi. Help pls.
Csak a balekok alszanak [SAS]
-
emitter
őstag
válasz Jester01 #1564 üzenetére
hát azt meg honnan tudjam, h jók-e a headerek
egyébként igazad van, ez tényleg csak egy mutató, de a progimban is mindenhol csak ilyen mutató típusú változókat deklaráltam, szóval elvileg ezzel nem kéne porbléma legyen..
ha átírom a
187: music = (Mix_Music *) malloc(sizeof(Mix_Music));
sort
187: music = (Mix_Music *) malloc(sizeof(Mix_Music*));
-ra, akkor már nem ad hibát erre, persze a, másik 3 hiba még marad..
egyébként mit jelent az, h dereferncing pointer.. szóval a többi hibaüzi mi miatt lehet?
ja, és ha vissza akarnám szedni a patchelt SDL-mixer libet, visszaállítani a régi hivatalost, akkor mit kell csnálnom? csak simán csomagból felrakom a régit? -
#51736960
törölt tag
hali! egy nagyon egyszerű honlapot szeretnék összedobni:
a könyvtárstruktúra egyszerű, egyetlen oldalból (index.html) áll, továbbá ugyanebben a könyvtárban van 20 jpg file.
maga az oldal úgy nézne ki, hogy középen van egy kép és két link (next és back). a next-re megjeleníti a következő képet, a back-re az előzőt. tehát tulajdonképpen egy egyszerű képgaléria az egész.
hogyan lehetne ezt a legegyszerűbben megoldani? (nem szeretnék előre elkészített galériákat, (pl photoshop web gallery) használni)
[Szerkesztve] -
emitter
őstag
válasz emitter #1565 üzenetére
hát végülis a 3 music->error-t kikommenteztem (jó kis favágó módszerrel), a
187: music = (Mix_Music *) malloc(sizeof(Mix_Music*));
sort pedig így átartam, most lefordul, csak hang nem jön...
megkérhetnék valakit, hogy próbálja meg linuxon lefordítani, megy-e neki? [link]
thx
(kell hozzá SDL-mixer, meg -dev-files, meg asszem smpeg-lib is) -
emitter
őstag
válasz Jester01 #1574 üzenetére
mod: frissítettem a kódomat a weblapomon..
asszem megtalűltam a headert: [link]
így inklúdoltam: #include ''music.h'' (azonos könyvtárban van a music.c-vel), de hibaüzit dob, hogy akadnak a music.h fv-ei más headerekével:
gcc -o music music.c -Wall -lncurses -lSDL -lSDL_mixer -I/usr/include/SDL
...
/usr/local/include/SDL/SDL_mixer.h:529: error: conflicting types for 'Mix_FadingMusic'
music.h:941: error: previous definition of 'Mix_FadingMusic' was here
/usr/local/include/SDL/SDL_mixer.h:530: error: conflicting types for 'Mix_FadingChannel'
/usr/include/SDL/SDL_mixer.h:532: error: previous declaration of 'Mix_FadingChannel' was here
/usr/local/include/SDL/SDL_mixer.h:567: error: conflicting types for 'Mix_GetChunk'
/usr/include/SDL/SDL_mixer.h:569: error: previous declaration of 'Mix_GetChunk' was here
....
stb
egy másik srác kipróbálta ugyanígy, neki nem akadtak, mi lehet a probléma?
----------------
megpróbáltam átrakni a Mix_Music definícióját a music.c kódomba:
struct Mix_Music {
Mix_MusicType type;
union {
#ifdef CMD_MUSIC
MusicCMD *cmd;
#endif
#ifdef WAV_MUSIC
WAVStream *wave;
#endif
#ifdef MOD_MUSIC
UNIMOD *module;
#endif
#ifdef MID_MUSIC
#ifdef USE_TIMIDITY_MIDI
MidiSong *midi;
#endif
#ifdef USE_NATIVE_MIDI
NativeMidiSong *nativemidi;
#endif
#endif
#ifdef OGG_MUSIC
OGG_music *ogg;
#endif
#ifdef MP3_MUSIC
SMPEG *mp3;
#endif
} data;
Mix_Fading fading;
int fade_step;
int fade_steps;
int error;
};
---
ha ezt a main elé berakom, így ahogy van, akkor jónak kéne lennie, nem? pedig nem jó, a fordító ugyanazt a hibát adja...
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$ gcc -o music music.c -Wall -lncurses -lSDL -lSDL_mixer -I/usr/include/SDL
music.c: In function 'myMix_LoadMUS_RW':
music.c:165: error: invalid application of 'sizeof' to incomplete type 'Mix_Music'
[Szerkesztve] -
emitter
őstag
válasz Jester01 #1580 üzenetére
nekem pedig nem jó
mind1, leszedtem libsdl-mixer1.2-dev csomagot, mindenhol beírtam egy struct-ot, elvileg jó kéne legyen, de nem:
(nem inklúdoltam a nemlétező SDL_mixer.h-t)
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$ gcc -o music music.c -Wall -lncurses -lSDL -lSDL_mixer -I/usr/include/SDL
music.c:24: error: syntax error before 'Mix_MusicType'
music.c:24: warning: no semicolon at end of struct or union
music.c:50: error: syntax error before 'fading'
music.c:50: warning: type defaults to 'int' in declaration of 'fading'
music.c:50: warning: data definition has no type or storage class
music.c:54: error: syntax error before '}' token
music.c: In function 'main':
music.c:72: warning: implicit declaration of function 'Mix_OpenAudio'
music.c:72: error: 'MIX_DEFAULT_FREQUENCY' undeclared (first use in this function)
music.c:72: error: (Each undeclared identifier is reported only once
music.c:72: error: for each function it appears in.)
music.c:73: error: 'MIX_DEFAULT_FORMAT' undeclared (first use in this function)
music.c:74: error: 'MIX_DEFAULT_CHANNELS' undeclared (first use in this function)
music.c:82: warning: implicit declaration of function 'Mix_PlayMusic'
music.c:85: warning: implicit declaration of function 'Mix_PlayingMusic'
music.c:90: warning: implicit declaration of function 'Mix_CloseAudio'
music.c: In function 'LoadMusic':
music.c:135: error: 'Mix_Music' undeclared (first use in this function)
music.c:135: error: syntax error before ')' token
music.c: In function 'myMix_LoadMUS_RW':
music.c:154: warning: implicit declaration of function 'Mix_SetError'
music.c:167: error: 'Mix_Music' undeclared (first use in this function)
music.c:167: error: syntax error before ')' token
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$
-----------
ha pedig inklúdolom a nemlétező headert, akkor csak ennyit ad:
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$ gcc -o music music.c -Wall -lncurses -lSDL -lSDL_mixer -I/usr/include/SDL
music.c: In function 'main':
music.c:82: warning: passing argument 1 of 'Mix_PlayMusic' from incompatible pointer type
music.c: In function 'LoadMusic':
music.c:135: warning: assignment from incompatible pointer type
music.c: In function 'myMix_LoadMUS_RW':
music.c:167: error: invalid application of 'sizeof' to incomplete type 'Mix_Music'
music.c:167: warning: assignment from incompatible pointer type
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$ -
emitter
őstag
válasz Jester01 #1583 üzenetére
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$ gcc -o music music.c -Wall -lncurses -lSDL -lSDL_mixer -I/usr/include/SDL -I /usr/local/include/SDL/
music.c: In function 'main':
music.c:83: warning: passing argument 1 of 'Mix_PlayMusic' from incompatible pointer type
music.c: In function 'LoadMusic':
music.c:136: warning: assignment from incompatible pointer type
music.c: In function 'myMix_LoadMUS_RW':
music.c:168: error: invalid application of 'sizeof' to incomplete type 'Mix_Music'
music.c:168: warning: assignment from incompatible pointer type
emitter@LAPTOP:~/Letoltesek/sdl-talk-1-examples$
pedig leszedtem a csomag SDL-t, majd újraraktam forrásból a patchelt SDL-t, és forgattam volna a kódomat... [link] -
Jester01
veterán
válasz emitter #1584 üzenetére
Ez most úgy látom a typedef nélküli verzió. Akkor nyilván sizeof(struct Mix_Music) kell. De valahol még mindig gáz van, hiszen pl. a Mix_PlayMusic prototípusa a fordító szerint hivatkozik a Mix_Music típusra. Szóval valamelyik headerben benne kell legyen. Keresd tovább
Jester
-
-
Jester01
veterán
válasz emitter #1588 üzenetére
Na látod ez a baj. A fordító is ezen a véleményen van, hogy neki biza senki nem árulta el mi a szösz ez a struktúra. Überbrutálnagyhekk, de meg lehet próbálni, hogy az általad beszúrt struct Mix_Music definíciót átnevezed _Mix_Music-ra, mert nem lehet tudni, hogy a library ugyanazt a struktúrát használja-e (a sok #ifdef miatt).
Jester
-
emitter
őstag
vszeg azert mert extern..
az extern arra valo hogy megadod a fv interfeszet, es jelzed hogy ennek nem lesz implementacioja a forrasaid kozott. viszont a forrasodban ettol fuggetlenul tudod hasznalni.
és ez mit jelent az én esetemben? szóval van egy ilyen extern fv:
extern DECLSPEC Mix_Music * SDLCALL Mix_LoadMUS(const char *file);
ezt hol definiálhatják? mert működik ez a fv, csak nem találom sehol a definícióját...
se includolt headerekben, máshol meg hol keressem?
tanácstalan vagyok.. -
emitter
őstag
válasz Jester01 #1594 üzenetére
kerestem, de nem nagyon találtam.. Krusaderrel végignéztem a /usr tartalmát fájlbéli kereséssel a fv nevére - semmi eredmény (kivéve az SDL_mixer.h extern-es sora)
amikor fordítom így, hogy:
gcc -o music_2 music_2.c -Wall -lncurses -lSDL_mixer
itt a ''-lSDL_mixer'' hova hivatkozik? Már csak ez az utolsó esély arra, hogy ebben van valahol a definíció, mert semelyik include nem húz be definíciós fájlt, másra meg nem tudok gondolni... -
Jester01
veterán
válasz emitter #1595 üzenetére
Azzal nem mész semmire, neked a library forrása kell. Egyébként a /usr/lib/libSDL_mixer.so.x.x fájlban lesz, de az nem a forráskód. Ha függvénykönyvtárat használsz, akkor az ahhoz tartozó headerben csak a deklarációk (prototípusok) vannak, a definíciók (implementáció) a könyvtárba van belefordítva. A könyvtár forráskódja, (amibõl a library készül) nem kell ahhoz, hogy magát a libraryt másik program használja. Ezért nem is szokás felrakni. Csak azoknak kell, akik magát a libraryt akarják újrafordítani (fejlesztõk).
Jester
-
emitter
őstag
válasz Jester01 #1596 üzenetére
de akkor elvileg a nyers fordítatlan SDL-libraryban benne kéne legyen, nem? mint nyers szövegfájlban - pedig azt is átnéztem, és semmit nem találtam benne.. akkor ez így reménytelen?
írok a fejlesztőknek, h mi van már
egyébként nem tudom elképzelni, h mivel openszorsz, ne lenne meg valahol a fv forrása.. csakhogy eddig sehol nem találtam -
STibi_
csendes tag
Üdv!
Látom itt sistereg az ész!
Hálózati gondom van. Az a felállás, hogy egy hotelban dolgozom, ahol egy kamerás renszer van. Ez még ok, de itt a recepción van 2 is, ami az én pofámat veszi. A gépet netről el lehet érni, még én állítottam be a routert, hogy milyen portokat kell a kamerás gépre forwardolni. A ''külső'' nézetet valami böngészös ActiveX vezérli. Az volna a kérdésem, hogy hogyan tudnám figyelni én a megadott portokat, hogy felcsatlakozott-e valaki kintről? (Delphi or API please...) Ha van erre valami kész progi, az is jó, legalább nem kell pötyögnöm, csak ha én írom, akkor el tudom ütni az időt a halálos éjszakai műszakban. Nézegettem a Help-et, de nem jutottam vele előre. Ha valaki tud pár utasítást, abból már ki tudok indulni, tudom merre keressek/menjek tovább.
THXJó humorérzéke annak van, aki röhög az én szövegemen.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Politika
- Samsung Galaxy S23 Ultra - non plus ultra
- Windows 11
- AMD CPU-k jövője - amit tudni vélünk
- VPN topic
- Győr és környéke adok-veszek-beszélgetek
- A régi node-okra koncentrál a szankciók miatt Kína
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Óra topik
- Milyen egeret válasszak?
- További aktív témák...
- Anker Soundcore Life Q20i Hybrid ANC Bluetooth fejhallgató (Új / bontatlan / 1.5 év garancia)
- Surface 4
- Bomba ár! HP EliteBook 830 G6 - i5-8G I 16GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! HP EliteBook 830 G5 - i5-8G I 16GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! HP EliteBook 745 G6 - Ryzen PRO 5 I 8-16GB I 256SSD I Radeon I 14" FHD I Cam I W11 I Gari!