Просто скопируйте файл .jar в папку libs, щелкните его правой кнопкой мыши и выберите «Добавить как библиотеку» в списке. Он сделает все остальное ...
Принятие Вас означает C++ / CLI (не старый Управляемый С++), следующее Ваши опции:
(1) Имитатор блок использования с использованием автоматического / стековые объекты:
{
SqlConnection conn(connectionString);
}
Это назовет Деструктор "вести" Объекта когда следующие концы блока включения. Является ли это функцией включения, или блок, который Вы вручную добавляете к предельному объему, не имеет значения.
(2) Явно вызов "Располагает", т.е. разрушает объект:
SqlConnection^ conn = nullptr;
try
{
conn = gcnew SqlConnection(conntectionString);
}
finally
{
if (conn != nullptr)
delete conn;
}
первый был бы прямой заменой для "использования". Второй является опцией, обычно Вы не должны будете делать, если Вы дополнительно не передадите ссылку на где-то в другом месте.
Для этого в Managed C ++ просто используйте семантику стека.
void Foo(){
SqlConnection con("connectionStringGoesHere");
//do stuff
}
Когда con выходит из области видимости, вызывается «Destructor», т.е. Dispose ().
Вы могли сделать что-то подобный в стиле auto_ptr:
void foo()
{
using( Foo, p, gcnew Foo() )
{
p->x = 100;
}
}
со следующим:
template <typename T>
public ref class using_auto_ptr
{
public:
using_auto_ptr(T ^p) : m_p(p),m_use(1) {}
~using_auto_ptr() { delete m_p; }
T^ operator -> () { return m_p; }
int m_use;
private:
T ^ m_p;
};
#define using(CLASS,VAR,ALLOC) \
for ( using_auto_ptr<CLASS> VAR(ALLOC); VAR.m_use; --VAR.m_use)
Для ссылки:
public ref class Foo
{
public:
Foo() : x(0) {}
~Foo()
{
}
int x;
};
Если Вы обеспокоены ограничением пожизненного, а не автоматического распоряжения переменной, можно всегда просто помещать его в его собственный объем:
void Foo()
{
{
SqlConnection con = new SqlConnection("connectionStringGoesHere");
// do stuff
// delete it before end of scope of course!
}
}