C++/CLI Settings.settings конструктор, как в C#

В настоящее время я пишу свою программу с графическим интерфейсом на C++/CLI. (Я знаю, что это плохо. И я не уверен в этом с тех пор, как впервые подумал о переходе на C#. Еще один мой вопрос).

Еще один вопрос, который может меня убедить, заключается в том, есть ли что-то сопоставимое с Дизайнером настроек в C#, которое я могу использовать в C++ / CLI. Я работал с моей собственной реализацией класса "Настройки", но он подвержен ошибкам. Итак, есть ли какие-либо дизайнеры или функции, которые я могу использовать в C++ / CLI, чтобы упростить управление настройками приложений и пользователей?

1 ответ

Решение

Нет. Отсутствующей функцией в C++ IDE является генератор кода, который автоматически генерирует код из дизайнера настроек. Microsoft просто никогда не вкладывала энергию в создание надстроек VS, необходимых для ее поддержки, подобные генераторы кода были реализованы только для IDE VB.NET и C#. Множество причин для этого немного выходят за рамки этого Q + A.

Вы все еще можете использовать дизайнер настроек, просто прыгните через несколько обручей. Благодаря превосходной поддержке языкового взаимодействия в.NET вы можете просто добавить проект библиотеки классов C# в свое решение. Затем "Проект"> "Свойства"> "Настройки"> нажмите "Создать". На панели инструментов измените комбинированный список Access Modifiers с Internal на Public так что ваш код C++/CLI может их использовать. Добавьте ваши настройки как обычно.

Добавьте ссылку на проект в ваш проект C++/CLI, и теперь вы можете использовать ClassLibrary1::Properties в вашем коде так же, как в приложении C#. Просто другое пространство имен.

Еще один обруч, сохранив хитрый последний, вы должны скопировать файл app.config из вашего проекта C# в каталог сборки вашего C++/CLI. Используйте xcopy в событии после сборки, чтобы сделать это, окончательное имя должно быть yourcppapp.exe.config. Да поможет вам Бог, если вам нужно объединить другие настройки.config, это очень сложно автоматизировать. Fwiw, лучше всего плыть по течению, сейчас вы находитесь на земле C++. Это должно быть сложно, иначе кто-нибудь может это сделать:) Настройки в любом случае работают только для небольших монолитных LOB-приложений, а не для типичной цели C++.

Другие вопросы по тегам