2015-03-24 3 views
0

Я знаю, что не следует включать с использованием пространства имен объявлений в заголовочных файлах, поскольку они делают элементы доступными для всего проекта и могут иметь плохой результат. Но до сих пор мне не удалось найти информацию о том, разрешена ли директива «#using» в файлах заголовков. Могу ли я использовать его в файле заголовка, как в этом примере ?:#using директива в заголовочном файле

Вот мой файл заголовка с функцией прямой декларации:

#using <System.dll> 

System::Security::Cryptography::X509Certificates::X509Certificate2^ GetCertificate(int Index); 

Если я не могу, что такое workaroud для включения System.dll , на котором X509Certificate2 зависит?

+0

Я не думаю, что это было бы проблемой. – Medinoc

ответ

0

Директива #using делает что-то полностью отличается от ключевого слова using namespace. Это эквивалент директивы #include, которая используется в нативном C++-коде. Он сообщает компилятору загрузить определения типов из метаданных сборки.

И нет, вы не должны использовать его. В недавних версиях VS он довольно сломан, точная версия ссылочных сборок, которые вы используете в своем проекте, имеет большое значение с .NET 4.0. Смертельный с 4.5, когда вы получаете wrong one. Кроме того, System.dll всегда ссылается на правильно сконфигурированный проект C++/CLI, поэтому # использование его снова бессмысленно.

Вместо этого используйте Project + Properties, Common Properties, References. Не забудьте использовать шаблон проекта из узла CLR при запуске нового проекта.

+0

Спасибо за ваш ответ, Ханс. Поэтому, если я использую .NET 4.5, я должен добавить эти файлы в качестве ссылок и даже не подумать об использовании _ # using_, правильно? –

+0

http://dictionary.reference.com/browse/lethal?s=t –