Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

DLL Libraries   Найти похожие ветки 

 
ЗМВ   (2003-09-10 15:51) [0]

Уважаемые мастера. Помогите новичку разобраться с DLL. Мне нужно написать программу, которая загружает 2 DLL. Одна подключает БД Access 97 по введенным параметрам, а 2-ая позволяет редактировать данные. Отображение на главной форме с помощью DBGrid. Текст первой библиотеки приведен ниже. При компиляции ошибок нет. В программе (см. ниже) осуществляется вызов процедур, но при запуске выдается ошибка "не вызван метод CoInitialize". Help помог мало, тк в английском я не силен, а в примерах вызова метода я не нашел.

library Project1;
...
type
P=^_RecordSet;

var
ADOCon:TADOConnection;
ADODst:TADODataSet;

procedure OpenDB(ConStr:PChar); stdcall;
begin
ADOCon:=TADOConnection.Create(nil);
ADOCon.ConnectionString:=WideString(ConStr);
ADOCon.Open;
ADODst:=TADODataSet.Create(ADOCon);
ADODst.CommandType:=cmdText;
ADODst.CommandText:="select Ware, Amount, Price from table";
ADODst.Open;
end;

procedure CloseDB; stdcall;
begin
ADODst.Close;
ADODst.Free;
ADOCon.Close;
ADOCon.Free;
end;

function GetRecordSet():P; stdcall;
begin
Result:=@ADODst.Recordset;
end;

exports
GetRecordSet,
OpenDB,
CloseDB;
....
----------------------------------------------
unit Unit1;
....
type P=^_RecordSet;

var
Form1: TForm1;

function GetRecordSet():P; external "Project1.dll";
procedure OpenDB(ConStr:PChar); external "Project1.dll";
procedure CloseDB; external "Project1.dll";

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDB(PChar(ADOConnection1.ConnectionString));
end;
....


 
clickmaker   (2003-09-10 15:56) [1]

А какой такой пример ты ожидал найти? :)

CoInitialize(nil) - и всё


 
ЗМВ   (2003-09-10 15:59) [2]

А где именно его вызвать?


 
clickmaker   (2003-09-10 16:14) [3]

Перед первым обращением к любому COM-объекту. В начале OpenDB, например.


 
ЗМВ   (2003-09-10 16:18) [4]

Выскакивает ошибка, что метод неизвестен.

procedure OpenDB(ConStr:PChar); stdcall;
begin
CoInitialize(nil);
ADOCon:=TADOConnection.Create(nil);
ADOCon.ConnectionString:=WideString(ConStr);
ADOCon.Open;
ADODst:=TADODataSet.Create(ADOCon);
ADODst.CommandType:=cmdText;
ADODst.CommandText:="select Ware, Amount, Price from table";
ADODst.Open;
end;


 
clickmaker   (2003-09-10 16:37) [5]

При компиляции?

uses ActiveX


 
ЗМВ   (2003-09-10 16:46) [6]

спасибо. ошибок не выдает. Что бы я без Вас делал? :-)))


 
HolACost!   (2003-09-10 18:18) [7]

Для справки
DLL - уже включает слово Library!



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
1-56609
Alex-21
2003-11-03 21:39
2003.11.17
SelWindowsPos


1-56716
reticon
2003-11-06 23:33
2003.11.17
Абстрактные методы класса


3-56458
Raduga
2003-10-29 10:28
2003.11.17
Добавление данных из одной таблицы в другую


1-56562
Gray Angel
2003-11-06 13:53
2003.11.17
Довесок к Exeption


1-56747
Basilio
2003-11-06 15:49
2003.11.17
Исходники diff





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский