2014-01-17 27 views
0

我試圖用XCode 4.6在OS X 10.8中構建第一個基本的wxWidget的應用程序。在窗口SetName()中出現EXC_BAD_ACCESS錯誤。在OSX中使用wxWidgets的EXC_BAD_ACCESS

這裏是我使用的代碼:評論後

#include "main.h" 
#include <wx/wx.h> 

class MyApp : public wxApp 
{ 
    virtual bool OnInit(); 
}; 

IMPLEMENT_APP(MyApp) 

bool MyApp::OnInit() 
{ 
    wxFrame *frame = new wxFrame(NULL, -1, wxT("Hello World"), wxPoint(50, 50), 
            wxSize(450, 350));  
    frame->Show(true); 
    return true; 
} 

編輯: 對不起回合,

這裏是錯誤的鏈條:

1) Create(parent, id, title, pos, size, style, name); 
2) if (!wxTopLevelWindow::Create(parent, id, title, pos, size, style, name); 
3) if (!wxNonOwnedWindow::Create(parent, id, title, pos, size, style, name)) 
4) setName(name); 
5) m_impl = stringSrc.m_impl; 

後,它的機器代碼

Jeff

EDIT2:剛試過wxWidgets 3.0,它是一樣的。

+1

「我在窗口SetName()中出現EXC_BAD_ACCESS錯誤」 - 在代碼中我看不到「SetName」。 – Shoe

+0

我對wxWidgets一無所知,但官方網站上給出的「Hello World」示例說你必須從'wxFrame'派生一個自定義的框架並使用它。你有嘗試過嗎? http://www.wxwidgets.org/docs/tutorials/hello.htm – trojanfoe

+0

我試圖從你的鏈接helloWorld,我得到了同樣的錯誤,但在不同的地方:static unsigned long DoStringHash(T * k) – IonOne

回答

1

你似乎有一個糟糕的,或者至少與你的程序不兼容,構建wxWidgets,因爲你絕對不應該像看起來那樣得到wxString任務中的崩潰。 Plesse使用完全相同的編譯器和編譯選項重建wxWidgets和您自己的應用程序,問題應該會神奇地消失。

+0

好吧我會嘗試從XCode編譯wxwidgets(我之前正在使用終端) – IonOne

+0

使用終端沒有任何問題(我一直都在使用),但是您需要確保您的項目設置是相同的。值得注意的是,使用了相同的編譯器和C++標準庫(Apple現在有兩個有幫助的標準庫)。 –