Je viens de porter mon jeu C ++ sur OS X et la première fois qu'il a eu l'exception suivante lorsque vous essayez d'appeler 2012-09-28 15: 01: 05.437 Scrâchefoids [28595: 707] * Application de terminaison due à une exception non capturée 'NsinternalInconSistencyException', raison: 'Erreur (1000) Création de CGSwindow à la ligne 259'
* fort> première pile d'appel de lancer:
(
0 CoreFoundation 0x00007FFF8B53B716 __ExceptionProcession + 198
1 LibobJC.A.DYLIB 0x00007FFF90E30470 OBJC_EXCEPT_THROW + 43
2 CoreFoundation 0x00007FF8B53B4EC + [NSTEXception ROUGE: Format:] + 204
3 AppKit 0x00007FF8A26A579 _nscreatewindowwithopaqueShip2 + 655
4 AppKit 0x00007FFF8A268D70 - [NSWINDOW _COMMONAAWAISE] + 2002
5 AppKit 0x00007FF8A2277E2 - [Nswindow _commonInitFrame: Stylemask: Support: Refer:] + 1763
6 APPLIT 0X00007FF8A22692F - [NSWINDOW _InitContent: STYLEMASK: SUPPORT: DEFER: ContentView:] + 1568
7 AppKit 0x00007FFF8A2262FF - [NSWINDOW INITWITHCONTRECTRECTRECT: STYLEMASK: SUPPORT: DEFER:] + 45
8 LIBSDL-1.2.0.DYLIB 0x0000000107C228F6 - [SDL_Quartzwindow initwithContentrect: Stylemask: Support: reporter:] + 294
9 LIBSDL-1.2.0.DYLIB 0x0000000107C20505 QZ_SETVideomode + 2837
10 LIBSDL-1.2.0.DYLIB 0x0000000107C17AF5 SDL_SETVIDEOMDE + 917
11 Scrasteroids 0x0000000107BE60FB _ZN11SDLGraphics4IniteP6iworldII + 291
)
libc ++ abi.dylib: terminer appelé lancer une exception
Abander Trap: 6 P> Mon code init ressemble à ceci: p> Il entre dans ce dernier appel SDL et jette l'exception ci-dessus. Je l'ai essayé dans le mode de fenêtre en plein écran et redimensionnable, même chose. P> Je construis mon ancienne école, sur la ligne de commande, par opposition à l'utilisation de Xcode. p> p> sdl_setvideomode code>.
3 Réponses :
sdl_main était encore une fois le coupable. My C ++ sur Windows, le même nouveau code provoque des conflits de liaison. C'est un nouveau problème. P> Main code> La routine était dans un fichier qui n'inclut pas
sdl.h code>, il n'était donc pas redéfini sur
sdl_main code>. Le code qui inclut
sdl code> est à la place dans une bibliothèque statique réutilisable, aucune routine principale que vous voyez. J'ai modifié manuellement le nom de ma fonction sur
sdl_main code> et cela signifie que SDL fournit la routine principale essentielle. Je n'aime pas faire ça, mais pour le moment, sur
sdl 1.2.15 code> pour Mac, il est nécessaire. P>
même problème, mais résolu en reliant libsdlmain (ainsi que libsdl). Cela nécessite à son tour deux cadres: fondation et cacao. P>
Je n'ai pas renommé la fonction principale. P>
Votre fichier principal comprend-il SDL.H? Si oui, votre principal () est renommé pour vous!
Il y a des problèmes d'appel de la vidéocole dans le cacao. Donc, vous devez l'initaliser avant d'appeler sdl_setvideomode
Ajoutez la méthode suivante et appelez-la d'abord dans votre méthode principale p> ` p> p> p> P>