2010-05-20 19 views
3

我在Visual Studio 2008中有一個C++/CLI應用程序,其命名空間遵循CompanyName.TechnologyName[.Feature][.Design]的.NET準則。問題在於似乎無法在項目的Root Namespace屬性中設置多級別名稱空間。我試過CompanyName.TechnologyNameCompanyName::TechnologyName如何在C++/CLI應用程序中正確設置Root Namespace屬性?

看來,我不能在不是根名稱空間的名稱空間內部有一個Form控件,因爲這會導致它使用的資源不被發現,因此對我來說似乎不可能遵循他們的指導原則並與我的C#應用。

有沒有辦法將這個屬性設置爲使用多層命名空間,或者我是否被迫使用只是一層的根命名空間?或者有沒有我忽略的解決方案?

編輯:
在Visual Studio 2010中添加了功能以允許多級別的根名稱空間。使用CompanyName.TechnologyName格式NOT CompanyName::TechnologyName。後者適用於/創建/表單,如果您的表單需要資源,那麼在編譯時,Visual Studio會嘗試保存到CompanyName::TechnologyName.resources,這會引發錯誤。

回答

0

不知道我看到資源問題。沒有「根名稱空間」的概念。對於名稱空間聲明,您必須遵循C++規則,您必須一次一個地嵌套它們。例如:

namespace Contoso { 
    namespace Accounting { 
    namespace PayRoll { 
     namespace Employees { 

    // class declarations go here 

}}}} // yeah, that sux 

而在.cpp文件:

using namespace Contoso::Accounting::PayRoll::Employees; 

有沒有麻煩添加資源,當它宣佈這樣,我能找到。但不要添加資源,然後更改名稱空間名稱。 C++ IDE沒有任何重構支持。 C++/CLI中的Windows窗體開發並不是非常流行,這可能是其中一個原因。

+1

以某種方式重新啓動Visual Studio並重新編譯修復了該問題。感謝您的回覆。 :) – 2010-05-20 22:14:55

相關問題