я пробовал на с++ такое
так после всех рекомендаций и не заработало
на дельфях наступил на теже грабли (падение терминала при попытке создания ADO)
в обоих случаях использовал DataModule
....
попробовать написать простенький exe в тех же дельфях с использованием данной dll и посмотреть что вернеться в качестве результата
а чем закончилась история??? неужели не получилось?
вот ссылка, где я выложил длл с исходником для работы метатрейдера с БД (интербэйс), написано на делфи, но понять можно
а чем закончилась история??? неужели не получилось?
вот ссылка, где я выложил длл с исходником для работы метатрейдера с БД (интербэйс), написано на делфи, но понять можно
Нет тогда так и не заработало
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MT4_SQL_TICK_ONE2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma argsused
using namespace std;
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
TDataModule2 *DataModule2;
//---------------------------------------------------------------------------
__fastcall TDataModule2::TDataModule2(TComponent* Owner)
: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
int __stdcall SQLConnect(char *Login, char *Pass)
{
DataModule2 = new TDataModule2(NULL);
DataModule2->ADOConnection1->Open(Login,Pass);
if (DataModule2->ADOConnection1->Connected)
{return 0;}
else
{return -1;}
}
вот так не получилось
терминал все равно падает ...
Всем заинтересованным сообщаю, что буквально через минуту после
создания темы, удалось пробороть проблему создания ADODB.Connection, все просто:
uses
SysUtils,
Classes,
ActiveX,
ADODB_TLB;
{$R *.res}
var
Cnn :Connection15;
function CreateConnection :longint; stdcall;
begin
try
CoIntialize(nil); //<------------------------------ !!!!!
Cnn:=CoConnection.Create;
Result:=1;
except
Result:=0;
end;
end;
.................................................
exports
CreateConnection
begin
end.
конечно, при выгрузке библиотеки в коде необходимо указать CoUninitialize;
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Проблема:написал на Delphi DLL в которой должен создаваться экземляр ADODB.connection-
DLL нормально загружается, но ADODB не создается,код:
usesSysUtils,
Classes,
COMObj,
ADODB_TLB;
{$R *.res}
var
Cnn :Connection15;
function CreateConnection :longint; stdcall;
begin
try
Cnn:=CoConnection.Create;
Result:=1;
except
Result:=0;
end;
end;
.................................................
exports
CreateConnection
begin
end.
код эксперта:
#include <WinUser32.mqh>
#import "ADOLib.dll"
int CreateConnection();
int init()
{
int create_cnn=CreateConnection();
Alert ("Сработала ф-ия init() при запуске ",create_cnn); // Сообщение
return(0);
}
переменная create_cnn равна 0, то есть создания экземпляра ADODB.Connection не происходит.
Не понимаю почему. :(