Как правильно установить свойство корневого пространства имен в приложении C ++ / CLI? - PullRequest
3 голосов
/ 20 мая 2010

У меня есть приложение C ++ / CLI в Visual Studio 2008, пространство имен которого соответствует руководству .NET CompanyName.TechnologyName[.Feature][.Design]. Проблема заключается в том, что, похоже, нет способа установить многоуровневое пространство имен в свойстве корневого пространства имен проекта. Я пробовал и CompanyName.TechnologyName и CompanyName::TechnologyName.

Кажется, что у меня не может быть элемента управления Form внутри пространства имен, которое не является корневым пространством имен, так как это приводит к тому, что используемые им ресурсы не могут быть найдены, поэтому мне кажется невозможным следовать их указаниям и быть совместимым с моими приложениями C # .

Есть ли способ настроить это свойство на использование многоуровневых пространств имен или я вынужден использовать корневое пространство имен, которое просто одноуровневое? Или есть решение, которое я пропускаю?

Edit:
Функциональность добавлена ​​в Visual Studio 2010, чтобы разрешить многоуровневые корневые пространства имен. Используйте CompanyName.TechnologyName формат НЕ CompanyName::TechnologyName. В то время как последний работает для / создавая / форм, если ваши формы требуют ресурсов, то при компиляции Visual Studio пытается сохранить в CompanyName::TechnologyName.resources, что приведет к ошибке.

1 Ответ

0 голосов
/ 21 мая 2010

Не уверен, что вижу проблему с ресурсом. Нет понятия «корневое пространство имен». У вас есть следующие правила 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 нет поддержки рефакторинга. Разработка Windows Forms на C ++ / CLI не очень популярна, возможно, это одна из причин.

...