játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5440
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] > 100 < [105] [110] [115] [120] [125] [130] [135] [140] [141]
MaximumViolence - Törzstag | 1020 hsz       Online status #64876   2007.07.30 05:39 GMT+1 óra  
Idézet
kuzanth :
A DirectShow még él?...Azt hittem, hogy már kb augusztus óta deprecated...Vagy az az mdx-es DirectShow ...


hát azt nemtom,én natívan kódolok
Idézet
gaborlabor :
Hééé, ne térítsd el, simán lehet, hogy OGL-es!


megverekszünk érte?

Szerk.:666 hsz
Ez egy reszeg post...

   
pataiadam - Tag | 3 hsz       Online status #64875   2007.07.30 05:18 GMT+1 óra  
Megnézem mindkettőt de szerintem a DirectShownál maradok de persze megnézem az opent is.

A válaszokat köszönöm
   
Kuz - Törzstag | 4455 hsz       Online status #64869   2007.07.30 04:48 GMT+1 óra  
A DirectShow még él?...Azt hittem, hogy már kb augusztus óta deprecated...Vagy az az mdx-es DirectShow ...
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
gaborlabor - Moderátor | 4449 hsz       Online status #64866   2007.07.30 04:44 GMT+1 óra  
Hééé, ne térítsd el, simán lehet, hogy OGL-es!
És igen, meg lehet csinálni, OGL-lel is!
DE ennek semmi köze a Dev-C++hoz, az csak egy IDE (fejlesztőkörnyezet).
Ha OpenGL-t használsz, akkor
http://nehe.gamedev.net/
és ott keress rá, van egy tutorial ami pontosan avi fájlok betöltéséről és lejátszásáról szól.
Ha DX-et használsz, akkor az van ami MaximumViolence írt.

   
MaximumViolence - Törzstag | 1020 hsz       Online status #64864   2007.07.30 04:33 GMT+1 óra  
Ha elkezdesz játékot fejleszteni,előbb-utóbb össze fogsz futni a DirectX SDK-val,aminek egyik "darabja" a DirectShow,az pont erre van kitalálvaitt a portálon találsz is néhány DX-es tutorialt DevCpp alá
Ez egy reszeg post...

   
pataiadam - Tag | 3 hsz       Online status #64863   2007.07.30 04:23 GMT+1 óra  
Egyet viszont kérdeznék (később többet is).

Azt meglehet DevC++-ban csinálni, hogy egy .avi fájlt beillesztünk és lejátsza.

Pontosabban:

Van egy animáció készítő progim...Azzal készítek .avi-ban egy animációt. ( D:/film.avi ) Ezután mondjuk, hogy a játékot kijátszottam és bejönne ez az animáció ami a játék sztoriját lezárja. Tehát meglehet csinálni azt hogy egy animációt a játékomba beillesszek, mondjuk az elérési utján??? Vagy valahogy?DevC++

köszönöm
   
pataiadam - Tag | 3 hsz       Online status #64862   2007.07.30 04:10 GMT+1 óra  
HI
Új tag vagyok. Most keztem tanúlni a C++ nyelvet. Előte tanúltam a QBasic, Html és Pascal nyelvet, de csak a QBasic ment jól. Most egy kicsit nehezebbe vágtam a fejszét... Remélem jót választottam... Az alapokat már tudom (hello world, int, if, else...) és most találtam egy honlapot ahól 2D-s játékfejlesztésről van szó DevC++-ban. Tehát mostmár áttértem a játékfejlesztésre... Remélem hamarosan (6-8 hónap) ott lesz a garázsban az egyik játékom
   
gaborlabor - Moderátor | 4449 hsz       Online status #64850   2007.07.29 15:37 GMT+1 óra  
Ezt írtam be a googleba:
Visual Studio Express Edition CD image

Első találat


   
Kuz - Törzstag | 4455 hsz       Online status #64847   2007.07.29 15:28 GMT+1 óra  
Idézet
TheProGamer :
Idézet
feamatar :
köszi a tippet, leszedtem már csak az a gond hogy elkezd telepíteni és megáll, annyit éír ki hogy
...


Ne a netes telepítőt szedd le hanem a CD image-t, a netes nekem sem működött.


És azt hol is kell keresni? Dobj egy linket pls, mert nekem sem megy a letöltött exe, ezt az image-et meg nem lelem !
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
beast - Törzstag | 1241 hsz       Online status #64845   2007.07.29 14:41 GMT+1 óra  
Megesik az ilyen mással is.

   
g_imi - Tag | 236 hsz       Online status #64844   2007.07.29 14:01 GMT+1 óra  
jajj bocsánat
Most nézem h 1 oltári nagy baromságot írtam!!!
Nem példányosítottam.
Mégegyszer elnézést!

   
g_imi - Tag | 236 hsz       Online status #64843   2007.07.29 13:56 GMT+1 óra  
Helló!
Nekem az lenne a problémám, hogy code::blocks-ban írok 1 egyszerű osztály öröklődéses progit, de sajnos nem fordul le.
A program a következő:
Kód:
class A{
public:
    int a;
};
class B:public A{
};

int main()
{
      B.a=10;

return 0;
}


A lényeg h nem érem el "B"-n keresztül "A" "a" adattagját.
Elvileg az öröklődés folyamán "B" is rendelkezik "a"-val nem?
Biztos én rontottam el valamit.
Tudnátok segíteni?
A neten nem találtam semmit sem rólla.

   
Adacs - Törzstag | 706 hsz       Online status #64773   2007.07.28 14:21 GMT+1 óra  
C:\Documents and Settings\user\Dokumentumok\film\irrlicht-1.3.1\examples\myGame\Makefile.win [Build Error] ["Brain] Error 1

Ezt írja ki a Dev-Cpp fordításnál és nem is indítja el és nem tudom hogy mi a baja...

ha csinálok benne hibát akkor ezt írja ki a másik helyet:

C:\Documents and Settings\user\Dokumentumok\film\irrlicht-1.3.1\examples\myGame\Makefile.win [Build Error] [obj/main.o] Error 1
Mosolyogj! A holnap rosszabb lesz a mánál. Arthur Bloch

   
feamatar - Tag | 11 hsz       Online status #64769   2007.07.28 14:00 GMT+1 óra  
nem volt türelmem úgyhogy még egy kicsit próbálkozom, megnézem mit tudok kezdeni platform sdkval,
köszi a segítséget

   
TPG - Tag | 3402 hsz       Online status #64765   2007.07.28 13:52 GMT+1 óra  
Platform SDK kell először, ettől még a DX-es próbléma nem múlik el de az ablakok legalább menni fognak.
Reality is almost always wrong. - House

   
feamatar - Tag | 11 hsz       Online status #64763   2007.07.28 13:38 GMT+1 óra  
végül is fut az Express Edition, de még kevésbé működik a projectem mint eddig
először kidobta fordításkor ugyanazt a hibát mint eddig. februári sdkm van.
a gond az, hogy az SDK súgója is LPDIRECTINPUT8 at emleget típusnak, és valóban a dinput.h ban is az van, DE ha a végére nem írok 8ast akkor nem ez lesz a hiba hanem más(történetesen mostmár az eddig működő windows alapom se fordul le )
és ha megnézem a befordított forrást ott már hiába keresek, egyszerűen eltűnik a defínícó végéről a 8ast
na de mára eleget idegeskedtem emiatt
majd holanp tovább próbálkozok

valaki nem tudja mit szúrhatok el???
nagyon felhúztam már magam rajta(így még expressbe jelen pillanatban egy sima ablakot se tudok létrehozni )

   
feamatar - Tag | 11 hsz       Online status #64724   2007.07.28 09:27 GMT+1 óra  
köszi, közben annyira sikerült rájönnöm hogy a NOD belekötött a telepítésbe... pedig áltabán csak a rohadt nagy exekkel szokott engem szívatni...

   
TPG - Tag | 3402 hsz       Online status #64719   2007.07.28 09:09 GMT+1 óra  
Idézet
feamatar :
köszi a tippet, leszedtem már csak az a gond hogy elkezd telepíteni és megáll, annyit éír ki hogy
setup is loading install components
it will takes one or two minutes (vagy valami ilyesmit)
és onnantól kezdve kész, eddig 20 percet volt türelmem max várni
és az a gáz hogy feladatkezelővel sem tudom innetől lelőni marad a restart


Ne a netes telepítőt szedd le hanem a CD image-t, a netes nekem sem működött.
Reality is almost always wrong. - House

   
WToma - Szerkesztő | 635 hsz       Online status #64718   2007.07.28 09:09 GMT+1 óra  
Valszleg netes telepítő, az meg elég optimistán szokott hozzáállni a dologhoz Ha egyetemista vagy, akkor letöltheted Campusból is, egyetemi szerverekről általában gyorsabb (ott ráadásul nem csak az express van)
Ez nem bug, hanem feature!
http://sohivatal.uw.hu
   
feamatar - Tag | 11 hsz       Online status #64714   2007.07.28 09:04 GMT+1 óra  
köszi a tippet, leszedtem már csak az a gond hogy elkezd telepíteni és megáll, annyit éír ki hogy
setup is loading install components
it will takes one or two minutes (vagy valami ilyesmit)
és onnantól kezdve kész, eddig 20 percet volt türelmem max várni
és az a gáz hogy feladatkezelővel sem tudom innetől lelőni marad a restart

   
TPG - Tag | 3402 hsz       Online status #64713   2007.07.28 09:01 GMT+1 óra  
Idézet
feamatar :
Hi!

Még most ismerkedek a DXel, de van egy kis progblémám fordító részéről.
Szóval Visual Studio 6.0át használok, és a következő hibát írja ki fordításnál:

e:\programozás\vc6_dx9summer2003\34_dxdirectinput\dxdirectinput.cpp(152) : error C2146: syntax error : missing ';' before identifier 'myDirectInputPtr'
e:\programozás\vc6_dx9summer2003\34_dxdirectinput\dxdirectinput.cpp(152) : error C2501: 'LPDIRECTINPUT8' : missing storage-class or type specifiers
e:\programozás\vc6_dx9summer2003\34_dxdirectinput\dxdirectinput.cpp(152) : fatal error C1004: unexpected end of file found

a gondom az, hogy ezt csinálja a tutorialnál is( Nyisztor Károly féle könyvből tanulom a DXet) tehát a kódnak jónak kell lennie(és ha jól értem a hibát arról van szó hogy nem találja a LPDIRECTINPUT8 definícióját). includeolva vannak a szükséges headerek(dinput.h) illetve pragma commenttelve a dinput8.lib
Hasonlóan hibaüzenetet ír ki amikor a D3DXCreateFontot akartam használni egy másik példánál.
Pls help!!!!!!


Melyik SDK verzió van fent? Mert laza 4 éve nem adtak ki VS6.0 kompatibilis verziót.
Tipp: töltsd le a VS2005 EE-t, tök ingyen van és jobb mint a VS6.0.
Reality is almost always wrong. - House

   
feamatar - Tag | 11 hsz       Online status #64708   2007.07.28 08:53 GMT+1 óra  
Hi!

Még most ismerkedek a DXel, de van egy kis progblémám fordító részéről.
Szóval Visual Studio 6.0át használok, és a következő hibát írja ki fordításnál:

e:\programozás\vc6_dx9summer2003\34_dxdirectinput\dxdirectinput.cpp(152) : error C2146: syntax error : missing ';' before identifier 'myDirectInputPtr'
e:\programozás\vc6_dx9summer2003\34_dxdirectinput\dxdirectinput.cpp(152) : error C2501: 'LPDIRECTINPUT8' : missing storage-class or type specifiers
e:\programozás\vc6_dx9summer2003\34_dxdirectinput\dxdirectinput.cpp(152) : fatal error C1004: unexpected end of file found

a gondom az, hogy ezt csinálja a tutorialnál is( Nyisztor Károly féle könyvből tanulom a DXet) tehát a kódnak jónak kell lennie(és ha jól értem a hibát arról van szó hogy nem találja a LPDIRECTINPUT8 definícióját). includeolva vannak a szükséges headerek(dinput.h) illetve pragma commenttelve a dinput8.lib
Hasonlóan hibaüzenetet ír ki amikor a D3DXCreateFontot akartam használni egy másik példánál.
Pls help!!!!!!

   
kiskami - Tag | 265 hsz       Online status #64635   2007.07.28 00:36 GMT+1 óra  
Ingyenes projektbe ingyenes, egyébként fizetős. Mondjuk fizetősben sem vészes (100$
(guglin a "game networking library" keresésre az első tízben szerintem lesz olyan, ami megfelel)
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
gaborlabor - Moderátor | 4449 hsz       Online status #64615   2007.07.27 12:45 GMT+1 óra  
Nm.
Hát azt sajnos nem tudom, én ezt eddig nem is ismertem, amíg a Solarah segédeszközeinél meg nem láttam
De a hivatalos oldalon biztos le vannak írva a használatának a feltételei.

   
Adacs - Törzstag | 706 hsz       Online status #64613   2007.07.27 12:36 GMT+1 óra  
Thx. Gondolom amíg nem használom pénzszerzésre addig ingyen használhatom.
Mosolyogj! A holnap rosszabb lesz a mánál. Arthur Bloch

   
gaborlabor - Moderátor | 4449 hsz       Online status #64611   2007.07.27 12:06 GMT+1 óra  
Adacs - Törzstag | 706 hsz       Online status #64609   2007.07.27 11:51 GMT+1 óra  
Tudtok valami jó dll-t amivel LAN-ba vagy neten keresztül kapcsolatot érhetek el? Lehetőleg olyat amit nem tílt le a tűzfal/router (főleg router)
Mosolyogj! A holnap rosszabb lesz a mánál. Arthur Bloch

   
WToma - Szerkesztő | 635 hsz       Online status #64605   2007.07.27 10:58 GMT+1 óra  
A függvényhívásoknak jó esetben minimális overheadje van, de azért vigyázni kell, mert pl virtuális fv-nél már hosszabb ideig tart.
Ez nem bug, hanem feature!
http://sohivatal.uw.hu
   
gaborlabor - Moderátor | 4449 hsz       Online status #64588   2007.07.27 09:57 GMT+1 óra  
Szerintem -ha a C-ből indulok ki- nagyon minimális, szinte észrevehetetlen. Illetve szvsz a paraméterek számától és az átadás módjától függ, azaz, hogy hány bájtot kell átmásolgatni a stackbe.
De glut esetén a renderelő fgv kötelezően void xy(void) típusú lehet, szóval ott még az sem lassíthat.
Szerintem ez a legeslegutolsó dolog ami miatt egy engine lassú lesz - DE lehet, hogy nagyot tévedek...

   
beast - Törzstag | 1241 hsz       Online status #64586   2007.07.27 09:53 GMT+1 óra  
Én is igy oldottam meg az engine-m (khm) render részét, de ezzel a megoldással van sebesség csökenés? Szóval a sok függvényhivás nem lassít? (nem glut-ot használok, csak pure win32)

   
gaborlabor - Moderátor | 4449 hsz       Online status #64580   2007.07.27 08:29 GMT+1 óra  
köszi szépen a magyarázatot!

azt hiszem, így már érthetőbb, mit jelent ott a static.
akkor megpróbálom majd az általad használt módszerrel, remélem összejön.
köszi mégegyszer!

   
WToma - Szerkesztő | 635 hsz       Online status #64579   2007.07.27 07:52 GMT+1 óra  
1. Megy az &-del is. (ha jól emléxem lehet nélküle is, meg vele is. ha zárójel nélkül leírjuk a fv nevét, azt is a "címe"-ként értelmezi a fordító)
2. a static egy osztályon belül azt jelenti, hogy az adott függvény (vagy adattag) nem az objektumhoz, hanem az osztályhoz tartozik. Legkönnyebb úgy elképzelni, mint olyan függvényt/adattagot, ami az osztály névterében van, de ezen kívül semmi köze hozzá Pl:
Kód:
class foo {

public:

   static int static_foo;
   int normal_foo;
   static void static_func() {cout<<static_foo;}
   void normal_func() {cout<<normal_foo;}
};
...
//pl így írhatod:
foo a,b;
a.normal_foo=3;normal_func();
b.normal_foo=5;normal_func();   //eddig gondolom nyilvánvaló h mit fog kiírni
//de itt jön a poén
a.static_foo=42;b.static_func();    //=>>42 tehát static_foo és static_func minden foo objektumban közös, ezért így is lehet írni:
foo::static_foo=42;foo::static_func();


A glut-nál ebbe én is belefutottam, ott a következő bűvészkedést csináltam: a callback fv-eket megírtam statikus függvénynek, valamint az osztály tartalmazott egy, az adott példányra mutató (szintén statikus) adattagot. A statikus callback fv-ek pedig meghívták a nem-statikus társaikat. Amúgy nemtom h erre mi a szép megoldás
Ez nem bug, hanem feature!
http://sohivatal.uw.hu
   
gaborlabor - Moderátor | 4449 hsz       Online status #64565   2007.07.27 04:28 GMT+1 óra  
köszi a választ!


azt írtad, hogy a függvény címe: &Foo;
ez érdekes... mármint, biztos vagy benne, hogy ez a függvény címe?
csak azért, mert a C könyvemben azt írják, hogy ha a függvény nevét paraméterezés nélkül használjuk, akkor AZ a függvény címe, magyarul nem kell a 'címe' operátort használni.
pl.:
Kód:
double sum(double a, double b)
{
    return a+b;
}

void main(void)
{
    double szam1=5., szam2=7., osszeg = 0.;
    double (*ptr)(double, double);
    ptr = sum; // !! nincs & és mégis felveszi a címét !!
    osszeg = ptr(szam1, szam2);
    // osszeg 12.0 lett
}


más:
Az, hogy egy függvény statikus, az mit jelent? A tárolási osztályra gondolsz?
Azt tudom, hogy C-ben a függvények alapból az extern tárolási osztályban vannak, a static kulcsszó a láthatóságukat csökkenti az adott modulra. C++ban ez nem tudom, hogy megy, de azt tudom, hogy a C++os extern nem ugyanaz mint a C-s.
Az osztályokban lévő függvények milyen tárolási osztályban vannak alapból? És jelent az valamit, ha azt a függvényt helyben fejtem ki (inline lesz), vagy annak csak a működés szempontjából van hatása?
Huhh, sokat kérdezek.

A lényeg, hogy azt szeretném megcsinálni, hogy legyen egy osztály, ami elvégzi a program indításakor a GLUT inicializálását.
Tehát a main fv csak ennyi lenne:
Kód:
int main(int argc, char **argv)
{
    CApplication Application(argc, argv);
    Application.Run();
    return 0;
}


Csakhogy a GLUT úgy tud rajzolni, hogy át kell neki adni a rajzoló függvény címét.
A rajzoló függvényt tartalmazó objektumot az Application objektum tartalmazza.
Ezért a rajzoló objektumba szeretnék olyan metódust írni ami visszaadja a rajzoló függvény címét, hogy aztán azt az Application objektum átadhassa a GLUT-nak.

Ez megoldható valahogy, vagy teljesen rossz úton járok?

   
Matzi - Szerkesztő | 2519 hsz       Online status #64564   2007.07.27 04:25 GMT+1 óra  
Meg az úgy is, pont olvastam valamikor, csak a pontos módját felejtettem el. A statikust valóban egyszerűbb, mert az egy sima függvény, csak más névtérben van, míg a nem statikus kap egy osztálypointert automatikusan.
Azthiszem valami olyasmi kell, hogy
Kód:
void(*osztaly::fvnev)(void);

vagy valami hasonló, de ugyanúgy lehet, ahogyan tagraváltozóra mutató pointert is valahogy így lehet visszaadni. Szóval ha így nem megy, akkor nézz körül, mert tuti meg lehet csinálni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
WToma - Szerkesztő | 635 hsz       Online status #64563   2007.07.27 04:13 GMT+1 óra  
Egy normál függvény címe:
Kód:
void Foo();
cím => &Foo;

De osztály tagfüggvényének csak akkor kérdezhető le a címe, ha a függvény statikus. Tehát ha pl. callbacket akarsz csinálni, akkor az nem megy, hogy a nem-statikus tgfüggvény címét lekérdezed.
Ez nem bug, hanem feature!
http://sohivatal.uw.hu
   
gaborlabor - Moderátor | 4449 hsz       Online status #64531   2007.07.26 14:13 GMT+1 óra  
Üdv!

Hogy tudom azt megcsinálni a legegyszerűbben, hogy egy osztályban szereplő inline függvény egy másik (de ugyanabban az osztályban szereplő) függvény címét adja vissza?

pl:
Kód:
class Class
{
        public:
                void Fgv(void);
                // ide kéne valami GetFgvAddress nevű inline függvényt írni,
                // ami a Fgv függvény címét adja vissza
};

remélem egyszerűen megoldható....
addig értem a dolgot, hogy a void Fgv(void); címét egy
Kód:
void(*valtozoneve)(void)

módon deklarált változó felveheti, de nem tudok olyan függvényt írni, ami függvénycímet ad vissza.

köszi előre is!

   
kiskami - Tag | 265 hsz       Online status #64524   2007.07.26 10:21 GMT+1 óra  
Ha egy funkciót kifejtesz a fejlécben, akkor az inline lesz, vagyis a hívása helyett a kódja fordítódik azokra a helyekre, ahol használod - ez kicsit tud dobni a sebességen, ha sokat hívogatnád.
( íme az egyszeri c++ programozó optimalizációs technikája )

Lehet látni olyan c++ "libeket" is, amelyek (szinte) csak fejlécfájlokból állnak, így "megtakarítva" a fordítási igényt, nem kell plaformonként/fordítóként külön libet fordítani, szállítani, viszont "mindenki" látja a megvalósítást.
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
Orphy - Törzstag | 1893 hsz       Online status #64512   2007.07.26 07:49 GMT+1 óra  
Kuz, ne aggódj, majd az ilyeneket is megszokod
   
Orphy - Törzstag | 1893 hsz       Online status #64511   2007.07.26 07:46 GMT+1 óra  
Egyébként, ha már úgyis a header file-okról van szó...

használom az

Kód:
#ifndef VALAMI_H
#define VALAMI_H

...

#endif


kódot a rekurzív befordítás ellen.


Most kicsit úgy érzem magamat, mintha visszanyalna a fagyi...
Ugyanis úgy tűnik, mintha ez úgy menne, hogy ha valahol include-olom az egyik ilyet,
akkor utána minden a jelenlegi file-omat include-oló dolog látni fogja...

DE

ha egy teljesen más helyen próbálom include-olni (értsd, fényévekkel előtte a függőségekben sem szerepelt sehol a valami.h), akkor ő észreveszi, hogy már valamikor (igaz teljesen máshol) már include-oltam, és kihagyja.

Aminek a következménye, hogy 2-es esetben hiába include-olok, nem fogom tudni használni...

pl legyen 3 header file-om, A.h, B.h, és C.h

A.h
#include "valami.h"

B.h
#include "A.h"

Amíg A és B körben mozgok, semmi gond nincs.

C.h
#include "valami.h"

Ami a C.h-t használja, az error-t dobál a valami.h-s dolgokra...


Lehetséges ez?
   
Orphy - Törzstag | 1893 hsz       Online status #64495   2007.07.26 05:27 GMT+1 óra  
Jaja, a C++ így működik

A függvény kódját és a deklarációt a .h file-ban össze is lehet vonni, de ez nem bevált szokás - általában csak rövidebb kódokra szokták alkalmazni, arra sem mindenhol. Pl:

Kód:
#ifndef VALAMI_H
#define VALAMI_H

#include "cucc.h"

class cValami
{
public:

int GetHealth()
{
      return m_Health;
}

private:
      int m_Health;
};

#endif


A dolog megszokható, nem kell megijedni.

Én pl már semmi kódot nem rakok a .h file-okba, így a segítségükkel gyorsan át tudom látni az osztályaimat.

A "jól bevált C#-os megoldást" meg pl azért nem lehet használni, mert amikor a C++ megszületett, a C# még pajkos gondolatként sem létezett.
   
Kuz - Törzstag | 4455 hsz       Online status #64493   2007.07.26 05:16 GMT+1 óra  
Azaz minden egyes fgv-emhez csinálnom kell a .h fileban deflarációt? Miért kell így túlbonyolítani, miért nem lehet a jól bevált C#-os megoldást használni? Már most utálom a C++t !
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Orphy - Törzstag | 1893 hsz       Online status #64488   2007.07.26 03:43 GMT+1 óra  
A könyvtárstruktúrát megtarthatod, de .h file-ok mindenképpen kellenek.

A .h file-okat úgy is felfoghatod (erős egyszerűsítéssel, és kicsit C#-osan gondolkodva), hogy az maga az osztálydefiníció - ebben szerepel az osztály, az osztály tagjai, függvényei... De kód nélkül, mint valami lista.

A .cpp file-ba kerül be ezeknek a kifejtése.

Ahhoz, hogy egy osztályt használni tudj, a progidba include-olni kell a .h-t (definíció), különben a fordító nem fogja ismerni az osztályodat.

Én úgy csinálom, hogy az engine-t logikus namespace-ekre bontom, a filestruktúrában pedig minden namespace-nek megfelel egy könyvtár. Ebben a könyvtárban található az adott namespace-be tartozó összes .h és .cpp.

Ha egy másik namespace-be tartozó dologra van szükségem, akkor relatív eléréssel be lehet includeolni. Pl:

#include "..\Engine\IO\cIni.h"

De ha gondolod, este meg is tudom mutatni az egész kódot, ha úgy jobban megérted
   
Kuz - Törzstag | 4455 hsz       Online status #64483   2007.07.26 02:21 GMT+1 óra  
Akkor .h fileok nélkül nem lehet dolgozni? Úgy értem, mint pl C# alatt, ahol ha kell egy függvény, akkor fogod és leírod és kész is vagy. Azért kérdezem, mert szeretném átírni az eddigi C#-os "motor-kezdeményemet" C++ -ra, de jó lenne megtartani az eddigi könyvtárstruktúrát.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
WToma - Szerkesztő | 635 hsz       Online status #64482   2007.07.26 02:15 GMT+1 óra  
Elragad a sötét oldal?

A .h és a .dll nem ugyanaz. A .h-ban (leegyszerűsítve) függvények deklarációi találhatóak, a .dll-ben (vagy .lib-ben ha statikusan linkelsz) pedig ezeknek a függvényeknek a definíciója (tehát kifejtése). A .h-t include-olni kell, hogy a fordító helyesnek ismerje el a te kódodat, a dll/lib pedig azért kell, hogy a linker össze tudja rakni a kész exe-t.

Ha runtime lib linkelésének módján szeretnél változtatni, akkor project properities/configuration properities/ C-C++ / Code Generation / Runtime library
Ez nem bug, hanem feature!
http://sohivatal.uw.hu
   
Kuz - Törzstag | 4455 hsz       Online status #64481   2007.07.26 01:48 GMT+1 óra  
Mivel csak mostanában kezdek C++ -t programozni, ezért elég láma kérdéseket fogok feltenni, ezért bocs !
Első ilyen kérdésem : .h fileok helyett lehet .dll-eket használni VS 2005 alatt, és ha igen, akkor mire kell odafigyelni?
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
kiskami - Tag | 265 hsz       Online status #64452   2007.07.25 10:09 GMT+1 óra  
Adj hozzá 1900-at! (az 1900-óta eltelt évek számát adja vissza)
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
Orphy - Törzstag | 1893 hsz       Online status #64448   2007.07.25 09:50 GMT+1 óra  
Nem fogjátok elhinni...

Megnéztem itthon, és simán fut...
Úgy tűnik, a céges gépet ez a kód valamiért nem szerette - pedig az itthonival ellentétben azon VC++2005 Prof van fent...

Rejtély...


Jah, és még 1 furcsaság...

Kód:
localtime_s( clock, &rawtime );


mindent jól ad vissza, kivéve az évet.
2007 helyett 107 van szerinte...
   
Orphy - Törzstag | 1893 hsz       Online status #64443   2007.07.25 08:59 GMT+1 óra  
Megint van kis gubanc...

Egy file utolsó módosításának a dátumát szeretném megtudni a következőképpen:

Kód:
// create a time structure
time_t rawtime;
struct tm* clock;

// create a file attribute structure
struct stat attrib;

// get the attributes of the file
stat(fileName.c_str() , &attrib);

rawtime = attrib.st_mtime;

// Get the last modified time and put it into the time structure
//clock = gmtime( &rawtime );
clock = localtime( &rawtime );

             ...


A progi futásidőben a tm*-ra konvertáló résznél
Kód:
clock = localtime( &rawtime );

szétesik, annyival hogy fatal error, és kidobja a time.inl forrásfile-ban a

Kód:
#pragma warning( disable : 4996 )
    return _localtime64(_Time);
#pragma warning( pop )

részt...

Szétnéztem neten, de mindenhol sorról sorra ezt a kódot találtam, a hibakeresésben pedig most sem segített...

Mi lehet a gond?
   
Orphy - Törzstag | 1893 hsz       Online status #64412   2007.07.24 23:19 GMT+1 óra  
Huh, ez nagyon hasznos volt.

Köszi szépen
   
nagyy - Törzstag | 248 hsz       Online status #64404   2007.07.24 14:12 GMT+1 óra  
Na igen, de sztem a vektornál is érdemes referenciát visszaadni. A sebesség mindenek felett.
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] > 100 < [105] [110] [115] [120] [125] [130] [135] [140] [141]