, поэтому я хотел попробовать свой первый проект CLR в Visual C++. Поэтому я создал консольный проект, но так как каждый учебник, который я нашел о программировании на CLR, использовал C# или формы Windows, я просто попытался написать стандартное приложение C++ Hello Word с помощью iostream (я думаю, что код в этом случае не нужен), но я, хотя это даст мне некоторая ошибка компиляции, так как iostream использует предварительно скомпилированные функции, а приложение CLR компилируется в MSIL. Я предположил, что программирование CLR с использованием C++ означает просто использование синтаксиса C++, но различные функции для ввода-вывода и так далее. Итак, в основном, я хочу спросить, может ли скомпилировано любое собственное консольное приложение C++ в MSIL и работать с .NET framework?Проект Visual Studio CLR
ответ
can any native console C++ app be compiled into MSIL and run by .NET?
В большинстве случаев код можно увидеть http://msdn.microsoft.com/en-us/library/aa712815.aspx за исключениями.
Ваше приложение по-прежнему будет использовать собственный код. Также есть/clr: pure, если вы хотите, чтобы использовался только код CLR.
Вы будете разочарованы, если попытаетесь узнать о управляемом программировании, взяв классическое приложение на C++ с изображением cout
и множеством STL, и постройте его /clr
. Предполагается, что вы сможете скомпилировать любое действительное приложение C++ для C++, но это не значит, что результат будет полезен. Быстрый совет, если вы настаиваете на том, чтобы идти таким путем - выключите предварительно скомпилированные заголовки.
Если у вас есть учебное пособие по C# для какого-либо консольного приложения, вы можете перевести его в C++/CLI по ходу дела. Документация MSDN может вам помочь, поскольку она обычно имеет примеры в VB, C# и C++/CLI, и вы быстро подберете шаблон замещения. Поэтому, если ваш учебник в C# показывает Console.WriteLine
, ваша версия C++/CLI будет иметь Console::WriteLine
. Если код C# имеет Employee e = new Employee()
, ваш код C++/CLI будет иметь Employee^ e = gcnew Employee()
и так далее. Этот подход позволит вам быстрее изучить C++/CLI, чем начать с «классического C++» и попробовать CLR-ify позже.
Сказанное, C++/CLI действительно не для написания консольных приложений и приложений winforms. Это для взаимодействия. Поэтому быстро переходим к написанию библиотек, которые вызывают большие библиотеки C++ (включая заголовок, ссылку на lib), а затем некоторый пользовательский интерфейс (windows, web, wcf и т. Д.) В VB или C#, которые используют вашу новую библиотеку interop для более простых доступ к функциональности старого кода на C++. Если у вас нет намерения делать это, почему вы изучаете C++/CLI?
Также есть книги C++/CLI - у меня есть несколько в моем офисе.
- 1. visual studio 2012 SQL CLR
- 2. Visual Studio 2015 No C++ CLR Templates
- 3. Проект проекта Visual Studio
- 4. Проект сценария Visual Studio
- 5. Проект установки Visual Studio
- 6. проект Visual Studio зависимостями
- 7. Пустой проект Visual Studio?
- 8. Получить проект Visual Studio
- 9. Проект установки Visual Studio
- 10. Проект Syncing Visual Studio
- 11. Проект тестирования Visual Studio
- 12. Проект создания Visual Studio
- 13. Несовместимый проект VIsual Studio
- 14. Использование DotnetZip с Visual Studio C++/CLR
- 15. Проект Visual Studio VSIX запускает неправильный проект
- 16. Проект Visual Visual Studio 08 для PDA
- 17. Проект сообщества сообщества Visual Studio
- 18. Проект установки Visual Studio 2008
- 19. Проект развертывания Visual Studio - CustomActionData
- 20. Templatizing проект в Visual Studio
- 21. Справочный проект Visual Studio/Dll
- 22. Создайте проект Visual Studio программно
- 23. Проект Visual Studio для MonoDevelop
- 24. Как переименовать проект Visual Studio?
- 25. Проект Xcode для Visual Studio
- 26. Проект Visual Studio не сохранен
- 27. Проект MakeFile для Visual Studio
- 28. изменить проект проекта Visual Studio?
- 29. Проект DataBase в Visual Studio
- 30. Проект Visual Studio 2012 PowerShell
Итак, в этом случае компилятор действительно включает машинный код для cout в код MSIL для CLR? – Vit
Сорта. Он будет включать в себя собственный код, который бит CLR вызовет напрямую. – sblom