2010-06-20 68 views
2

我正在使用OpenGL和C++來解析文件中的某些結構化輸入並以圖形方式顯示它。我想在加載應用程序時啓動一個打開文件對話框,以允許用戶選擇他們想要顯示的文件。我一直無法在網上找到我需要的東西。有沒有辦法在C++中實現這一點?如果是這樣,怎麼樣?先謝謝你。如何在OS X中使用C++打開「打開文件」對話框?

+1

您使用哪種框架來顯示OpenGL窗口?答案將取決於此。你在使用GLUT嗎?或者是什麼? – Yuji 2010-06-20 00:47:12

+0

感謝您的回覆。我的確在使用GLUT,但我有點擔心這很重要。在Windows下,有一個用於處理文件瀏覽的Windows API調用。在代碼中,它只是一個函數,它返回用戶選擇的文件的路徑(但對話框由OS處理)。我希望能爲OS X找到類似的東西。 – Lyudmil 2010-06-20 02:11:07

回答

3

你有兩個選擇,一個快速,和一個好的:

  • 快速和非常簡單,使用來自碳和NavCreateGetFileDialog()Navigation Services框架。你會很快完成,你將不得不學習幾乎沒有新東西,但你的代碼不會運行在64位(蘋果推動每個人都朝着它),你必須鏈接碳框架。導航服務是64位的officially removed,並且通常會向前推薦(儘管我預計它會在32位內徘徊很長一段時間)。在你第一次做它(因爲你需要學習一些Objective-C)的時候多一點工作,但是更強大和完全的支持,把NSOpenPanel包裝在一個Objective-C++類中,並且將它公開給你的C++ 。這是我的Wrapping C++模式,只是向後。如果你這樣做,遇到麻煩,請放下一張便條,我會盡量加快發佈博客條目。

3

要添加到什麼羅布寫道:

不幸的是,有沒有簡單的等效到Windows的GetOpenFileName

  1. 如果使用碳:我真的不認爲NavCreatGetFileDialog易於使用...您可以使用this code在CarbonDev來看看如何使用它。該代碼返回CFURLRef。要獲得POSIX路徑,請使用CFURLGetFileSystemReprestnation

  2. 這就是說,我建議你使用可可。 Rob會寫一篇博客文章如何使用來自GLUT的NSOpenPanel :)

+0

haha​​haha ....實際上,蘋果公司爲GLUT提供了一些很好的示例代碼。這個問題最有用的是GLUTWindow,因爲它可以讓你處理運行工作表所需的對象。蘋果公司在使用GLUT方面也至少有一項Technote技術;它值得搜索他們的網站更多的東西。 http://developer.apple.com/mac/library/samplecode/glut – 2010-06-20 15:32:51