.[ ČeskéHry.cz ].
Cesta k aplikaci

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 18. leden 2009, 19:45:29    Předmět: Cesta k aplikaci Odpovědět s citátem

Cau, mam dalsi problem Smile Da se nejak v c++ zjistit adresar aplikace? Jde mi o to, ze si ona vytvari naky soubory, ale tak aby byli hned u spousteciho souboru. Jenze ten spousteci soubor muze byt umisten kdekoli, takze neznam absolutni cestu a pokud tu aplikaci nepustim primo z jejiho adresare, tak mi to ty soubory vytvori v tom adresari, odkud jsem ji poustel a to nechci. Nevita jak na to? Dik Uiii

Jen poznamenam ze to delam v linuxu.
_________________
Twitter
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 18. leden 2009, 19:51:27    Předmět: Odpovědět s citátem

neni nahodou nultym parametrem pro main full-path k aplikaci?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 18. leden 2009, 20:12:53    Předmět: Odpovědět s citátem

no jo mas pravdu Smile dik
_________________
Twitter
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ladik-BigBoss



Založen: 28. 07. 2007
Příspěvky: 162

PříspěvekZaslal: 19. leden 2009, 21:34:37    Předmět: Odpovědět s citátem

nemusi byt. nultym parametrem je prikaz. takze pokud tu aplikaci mas nainstalovanou v PATH, treba /usr/bin tak ji muzes spustit jako 'app' a pouze to dostanes do argv[0].
nekde jsem videl clanek kde to resili, myslim ze to jde nejak pres PID v /proc
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 19. leden 2009, 21:38:39    Předmět: Odpovědět s citátem

Proto v linuxu většinou nejsou data v adresáři s binárkou.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 19. leden 2009, 22:22:19    Předmět: Odpovědět s citátem

char path[512] = {0};

Na Windows pomocí: GetModuleFileName(0, path, 511)
Na Linuxu pomocí: realpath("/proc/self/exe", path)
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 19. leden 2009, 22:33:59    Předmět: Odpovědět s citátem

frca napsal:
Proto v linuxu většinou nejsou data v adresáři s binárkou.

Proc by nemohly, dyt ono to ani nevadi, ze v argv[0] nemusi byt cesta absolutni. Proste je takova, ze vede k binarce. Ve svejch hrach (jsou k nim zdrojaky) si vzdycky nastavim cestu na tu, kam miri argv[0], a muzu pak bez problemu najit data hry (pac od te chvile jsou relativne vzdy stejne umistene, napr. "hudba/menu.mp3"). Cestu si zalohuju, takze ji pak pri ukonceni hry vratim, kdyby neco. Diky tomu jdou me hry pustit jednoduse kliknutim na ikonu v Nautilu/Konqueroru, aniz bych musel otevirat konzoli a prejit do adresare hry (narozdil od Pruzkumnika ve Windows totiz spustenim z GUI dostane v Linuxu hra obvykle cestu k home).
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 20. leden 2009, 07:36:37    Předmět: Odpovědět s citátem

frca napsal:
Proto v linuxu většinou nejsou data v adresáři s binárkou.


nejenom v linuxu - ani na windows - v linuxu patri data aplikace do /home/$USER/... ve win do D&S\%USER%\ApplicationData

resp.!!! - v linuxu aktualni home udava $ pokud se nemylim a ve windows se nikdy nesmi pouzit primo nazev D&S nebo jmeno aktualne prihlaseneho uzivatele - ale ziskat si cestu pres API funkci nebo z env promenne - protoze D&S se muze jmenovat jinak nebo byt na jinem disku nez cekame a jmeno uzivatele nemusi nutne souhlasit se jmenem slozky - treba v domene mam Reznicek.ESPACE
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 20. leden 2009, 10:33:48    Předmět: Odpovědět s citátem

Rezna myslim mluvi o uzivatelskych datech, jako nastaveni hry a ulozene pozice. Tyto data skutecne nepatri do adresare hry, protoze pokud hru nainstaluje jiny uzivatel, tak ostatni by ji bez prav na zapis do adresare hry nemohli hrat.

Ve Windows se to driv vytahavalo z registru (HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\AppData, precteni z registru viz zdrojaky mych her), pocinaje Win2000 je na to i funkce ve WinAPI, ve Viste uz ten klic v registrech ani nema pro system vyznam, ale z duvodu kompatibility do nej Vista kopiruje aktualni nastaveni cest. Takze pokud ma hra bezet i na starsich OS, tak je to reseni v pohode. V Linuxu je to jeste jednodusi, proste jen getenv("HOME") Wink.

Obvykle se to dela tak, ze kdyz jde jen o jeden soubor, tak ho date do rootu te slozky, pokud je jich vic, tak do podslozky, v Linuxu samozrejme skryte (tecka na zacatku). BTW nektere hry to nedelaji spravne, napr. jedna verze GTA slozku s uzivatelskymi daty dava do rootu vasich dokumentu Smile.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 20. leden 2009, 11:11:09    Předmět: Odpovědět s citátem

add windows - je tam %APPDATA% kterou stejne tak staci pouze secist pres API
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 20. leden 2009, 13:35:39    Předmět: Odpovědět s citátem

Ano je, uz si vzpominam. Proste zpusobu je vice, mimochodem tento uvedeny zapis je koukam dokonce pouzit v jedne me male hre (v zastupci pro editaci konfiguracniho souboru, ktery tak funguje vsude) Wink.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna