Каково различие между C++ и C++ CLI [дубликат]

7
задан Community 23 May 2017 в 12:31
поделиться

3 ответа

C ++ работает напрямую, как двоичный пополнен на ваше оборудование. C ++ CLI - расширение C ++, которое используется для интерфейса со временем выполнения общего языка MS. Это нормально соответствует IL и выполняется внутри .NET Runtime. Существует множество различий между двумя некоторыми из основных, будучи сборкой мусора, а также работают наследование и интерфейсы.

Причина использования C ++ CLI является преимущества использования сотен классов, предоставленных вам рамками. Все они доступны от любого языка совместимого CLR, поэтому некоторые были оставлены, чтобы удивляться, почему один будет использовать C ++ для доступа к основам, если вы не связываете в какой-то унаследованный код.

2
ответ дан 7 December 2019 в 07:45
поделиться

Вам придется поменяться местами, что-то похожее на следующее.

Вот пример, вам нужно будет изменить это для достижения вашей цели, но это показывает разницу.

Я также рекомендую использовать оператор «Using» для управления подключением/считывателем. Кроме того, параметризованный запрос.

Dim sConnection As String = "server=(local);uid=sa;pwd=PassWord;database=DatabaseName"

Dim objCommand As New SqlCommand
objCommand.CommandText = "Select * From tablename"
objCommand.Connection = New SqlConnection(sConnection)
objCommand.Connection.Open()

Dim objDataReader As SqlDataReader = objCommand.ExecuteReader()

If objDataReader.HasRows Then
Do While objDataReader.Read()
Console.WriteLine(" Your name is: " & Convert.ToString(objDataReader(0)))
Loop
Else
Console.WriteLine("No rows returned.")
End If

objDataReader.Close()
objCommand.Dispose()
-121--3095783-

Я предполагаю, что Dumb.pm в настоящее время использует Экспортер. Если не требуется переименовывать функции (просто разбить их на отдельные модули), необходимо сохранить существующие определения @ EXPORT , импортировать все из подмодулей и просто повторно экспортировать функции.

package Dumb;
use Dumb::FormTools ':all';
use Dumb::Database  ':all';

use Exporter 'import';

our @EXPORT = ...;    # Unchanged from original version
our @EXPORT_OK = ...; # Unchanged from original version

1;

Тег : all не определен по умолчанию. Необходимо определить его вручную (в каждом подмодуле).

our %EXPORT_TAGS = ( all => [ @EXPORT, @EXPORT_OK ] );
# or, for a module that doesn't export anything by default:
our %EXPORT_TAGS = ( all => \@EXPORT_OK );

С другой стороны, если подмодуль не имеет функций @ EXPORT _ OK , то можно пропустить : all тэгов и просто сказать use Dumb:: Submodule; .

-121--4667736-

Интерфейс командной строки C++ работает в «Common Language Interface». Это в основном означает, что при компиляции скомпилированный код будет распределен как байтовый код, полученный с помощью C #.

В CLI C++ добавлена тонна расширений, таких как Garbage Collection, которые не существуют в C++. Интерфейс командной строки C++ также позволяет использовать «безопасный» код C++. В этом режиме нельзя использовать указатели. В C++ нет такого понятия, как «безопасный» код. Интерфейс командной строки C++ может быть удобен для взаимодействия кода .NET и библиотек C++, но кроме того, я не нашел для него использования.

Страница Википедии имеет хороший обзор: http://en.wikipedia.org/wiki/C%2B%2B/CLI

И да, они правы, чтобы прыгнуть на вас за возможность программировать в C++ CLI не позволит вам программировать в C++.... они достаточно разные, что вы не можете просто смешать их.

3
ответ дан 7 December 2019 в 07:45
поделиться

AFAIK, C ++ CLI позволяет вам получить доступ к Framework .NET.

Он предлагает немного мусора и мало других особенностей не на C ++

2
ответ дан 7 December 2019 в 07:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: