C ++ работает напрямую, как двоичный пополнен на ваше оборудование. C ++ CLI - расширение C ++, которое используется для интерфейса со временем выполнения общего языка MS. Это нормально соответствует IL и выполняется внутри .NET Runtime. Существует множество различий между двумя некоторыми из основных, будучи сборкой мусора, а также работают наследование и интерфейсы.
Причина использования C ++ CLI является преимущества использования сотен классов, предоставленных вам рамками. Все они доступны от любого языка совместимого CLR, поэтому некоторые были оставлены, чтобы удивляться, почему один будет использовать C ++ для доступа к основам, если вы не связываете в какой-то унаследованный код.
Вам придется поменяться местами, что-то похожее на следующее.
Вот пример, вам нужно будет изменить это для достижения вашей цели, но это показывает разницу.
Я также рекомендую использовать оператор «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;
.
Интерфейс командной строки 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++.... они достаточно разные, что вы не можете просто смешать их.
AFAIK, C ++ CLI позволяет вам получить доступ к Framework .NET.
Он предлагает немного мусора и мало других особенностей не на C ++