2010-07-02 13 views
0

Je suis assez nouveau sur le Mac mais raisonnablement expirienced avec Windows. Ce dont j'ai besoin, c'est d'une fenêtre ouverte et fermée par la bibliothèque (dylib). Ceci est très facile à faire dans MS Windows, mais ne semble pas être difficile sous Cocoa.Fenêtre de la plume dans dylib

J'ai utilisé le code de l'exemple 'CocoaInCarbon' d'Apple avec des wrappers C++. Mais le NSApplicationLoad() suivi de [NSBundle LoadNibNamed:@"MyWindow" owner:self] échoue. Est-ce dû au fait que le dylib n'est pas un paquet? Y a-t-il d'autres façons d'ouvrir et de contrôler une fenêtre dans un dylib?

Répondre

2

Oui, le problème est que ce n'est pas un paquet; votre plume ne peut pas être dans un paquet qui n'existe pas, alors comment le code le trouverait-il pour l'ouvrir?

Vous devez utiliser un framework (qui est un bundle) et expédier la plume dans cette structure, ou vous devez créer la fenêtre entière par programme dans votre dylib.

+0

Ok, merci, je comprends. Connaissez-vous samplecode illustrant la solution A et/ou B? Jan – Jan

0

Ce n'est pas une pratique standard de simplement expédier dylib sur Mac, lorsque la bibliothèque partagée n'est pas de très bas niveau et implique une interface graphique en particulier. Vous l'empaquetez dans un framework, de sorte qu'il puisse non seulement contenir des codes, mais aussi des ressources associées (pointes, images, sons) à un endroit.

Lisez this Apple document pour comprendre ce qui se passe et comment le préparer. Ou, jetez un oeil à /System/Library/Frameworks/ pour voir comment OS X lui-même fournit des bibliothèques.