Главная страница
    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.012 c
4-56963
V-A-V
2003-09-19 10:23
2003.11.17
Сохранение проиаттаченых файлов из потовых сообщений формата MSG


1-56669
Polygon
2003-11-05 09:57
2003.11.17
импорт TXT


14-56822
VictorT
2003-10-23 23:01
2003.11.17
У кого-нить сохранилась легендарная ветка про обнуление...


1-56617
evgeniy32
2003-11-05 18:47
2003.11.17
Как прочитать строку из *.txt и присвоить ее переменной?


1-56752
Pattern
2003-11-05 13:44
2003.11.17
ScrollBar окна





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский