C ++ программы, разработанные и скомпилированные с Visual Studio - PullRequest
1 голос
/ 03 августа 2010

У меня установлен Visual C ++ 2010 Express.Я разрабатываю некоторые приложения с ним (в основном на основе консоли на данный момент).

Обычно я компилирую с помощью параметра командной строки cl.exe.Требуется ли для этих приложений, которые я скомпилировал с помощью Visual C ++ .NET Framework, для работы?

Что же такое файл объектного кода?

Наконец, я знаю, что в mono полностью реализована Windows Form 2.0.Какая версия .NET Framework соответствует WinForm 2.0?(Я предполагаю .NET 2.0?) Означает ли это, что мне нужно использовать Visual Studio 2005 для разработки или я могу создать новый проект с другой версией .net с Visual Studio 2010?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 августа 2010

По порядку:

  1. Нет, вашим приложениям не потребуется .NET Framework, если вы придерживаетесь чистого C ++ (то есть избегаете C ++ / CLI).Однако если вы динамически (/ MD) подключили библиотеку времени выполнения C, для ваших приложений потребуется установить «Microsoft Visual C ++ 2010 Redistributable».

  2. Код объекта является промежуточным представлением,Ваши исходные файлы были скомпилированы в инструкции x86 (или amd64), но все еще должны быть связаны вместе с библиотеками времени выполнения, прежде чем их можно будет использовать.За исключением необычных обстоятельств, файлы .obj не считаются частью окончательного приложения и не требуют упаковки.

  3. В настоящее время .NET Framework 2.0, 3.0, 3.5 и 4.0 соответствуютв WinForms 2.0.Поскольку они в основном используют один и тот же CLR, вам не нужно использовать VS2005 для разработки совместимых приложений, если вы не используете новые функции.Довольно удобно, что Microsoft приостановила разработку WinForms, поэтому просто избегайте WPF, и все будет готово.

0 голосов
/ 03 августа 2010

Требует ли ваше приложение .NET Framework, зависит от того, как вы компилируете.Если вы передадите флаг / clr компилятору, он сгенерирует код C ++ / CLI, который требует (и позволит вам использовать) .NET Framework.

В противном случае вы получите собственное приложение C ++,не требует этого.

Если вы хотите использовать Winforms, которые являются частью .NET, вы должны использовать флаг / clr.Как упомянул ChrisV, если вы компилируете с /MD или /MDd, вашей программе требуется библиотека времени выполнения VC ++.Если вы компилируете с /MT или /MTd, среда выполнения статически связывается с вашим приложением, поэтому отдельный .dll не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...