Apple, få reda på vad .app "filen" heter

Permalänk
Medlem

Apple, få reda på vad .app "filen" heter

Hej!

Jag håller på med att porta ett program till OS X, men skulle vilja utnyttja möjligheten att baka in alla filer i .app filen, istället för andra mappar.

Problemet är att jag hittar inget sätt att ta reda på vad filen heter, så ifall användaren byter namn på programfilen så kommer det inte fungera längre.

Jag programmerar i Qt4 (C++), och öppnar filerna genom en relativ sökväg mha QFile().

Permalänk
Medlem

I Objective C är det

NSBundle* mainBundle = [NSBundle mainBundle];

du använder för att få ut ditt appbunde-objekt.
Därefter kan man köra

[mainBundle resourcePath]

för att få ut pathen till resurs-katalogen.

För Carbon (OSX C-api, som du förmodligen måste använda om QT inte har wrapapt det) bör du kunna kolla på http://developer.apple.com/carbon/tipsandtricks.html#AmIBundl...

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.

Permalänk
Medlem

Jag vet inte om det är jag som är oerhört dålig nu, men jag kan verkligen inte hitta ett någonting som förklarar hur man ska använda sådana saker i praktiken, t. ex. vilka headerfiler som behöver importeras etc. Ifall jag hittar något sorts exempel, så visas aldrig vilka headerfiler som importeras, och det är ju väldigt svårt att kompilera ett program utan rätt headerfiler.

Permalänk
Medlem

<borttagen p.g.a. felaktig info>

EDIT:

Grävde lite mer... det är CoreFramework du vill ha. Där finns en funktion CFBundleGetMainBundle som ger dig en bundle.

http://developer.apple.com/mac/library/documentation/corefoun...

Då kan du får ut din path med t.ex. CFBundleCopyResourcesDirectoryURL eller CFBundleCopyResourceURL beroende på vad du vill göra.

Därefter CFURLGetFileSystemRepresentation om du vill få ut nått du ska skicka till andra system.

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.