2014-03-26 24 views
0

我想在運行我的程序時打開兩個不同窗體。表單被命名爲Form2和Form3。 Form2正常運行,但Form3不運行。我已將Application->CreateForm(__classid(TForm3), &Form3);放在我的項目cpp文件中,並在我的Unit2.cpp文件中放入了Form3->Show();,但出現錯誤:"Access violation at address 0047B2CE in module 'Project2.exe'. Read of address 00000384." 我在做什麼錯?在C++ builder中啓動時打開兩個窗體

+0

你是什麼意思? – user3403621

+0

C++ builder是一個非常老的編譯器,自2000年以來沒有開發/支持。我懷疑它甚至符合C++ 98標準。 – Manu343726

+0

我正在使用RAD Studio 2010,所以我認爲它仍然支持。 – user3403621

回答

2

沒有看到您的實際代碼,很難說,但是當您撥打Form3->Show()時,很可能Form3根本還沒有被創建。您在內存地址接近0時出現錯誤,這很好地表明您可能訪問了空指針。

您不需要撥打Show(),除非您希望更多地控制何時顯示錶格。您可以在設計時簡單地將它們的Visible屬性設置爲true,並在調用Application->Run()來啓動消息循環時讓VCL爲您顯示它們。

+0

是的,它就像你說的,我沒有注意到from不可見。 – user3403621

相關問題