小编lex*_*hou的帖子

在C++下创建一个NSWindow

我做了一个简单的实验,我在Xcode中编写了以下代码:

int main(int argc, char** argv)
{
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
    NSApplication* app = [[NSApplication alloc] init];
    NSWindow* window = [[NSWindow alloc] 
        initWithContentRect: NSMakeRect(0, 0, 640, 480)
        styleMask: NSTitledWindowMask | NSMiniaturizableWindowMask
        backing: NSBackingStoreBuffered
        defer: NO];
    [window setTitle: @"New Window"];
    [window center];
    [window makeKeyAndOrderFront:nil];
    [app run];
    [pool release];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它按预期运行,一个新的空窗口,但如果我使用命令行在终端下编译它:

$ g++ test.mm -framework Cocoa
$ ./a.out
Run Code Online (Sandbox Code Playgroud)

没有窗口,它会在[app run]轻而易举.

我做错了吗?为什么Xcode和命令行之间有不同的行为?有人能告诉我如何在命令行中实现相同的行为吗?

提前致谢.

cocoa objective-c++

3
推荐指数
1
解决办法
2592
查看次数

标签 统计

cocoa ×1

objective-c++ ×1