Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.21;
Скачать: CL | DM;

Вниз

Создание DLL   Найти похожие ветки 

 
KINDA   (2002-11-12 12:05) [0]

Уважаемые мастера, подскажите пожалуйста как создавать библиотеки
DLL в Delphi чтобы их можно было подключить в VBA проекте. Почему-то созданная при помощи DLL Wizard библиотека не хочет подключаться в VBA а в Делфи работает.


 
Слесарь Матерящийся   (2002-11-12 12:14) [1]

ActiveX library?


 
stone ©   (2002-11-12 12:17) [2]

Тут вопрос не в том как и в чем создавать библиотеки, а как правильно подключать "чужие" библиотеки к VBA


 
Romkin ©   (2002-11-12 12:22) [3]

Лучше действительно использовать ActiveX library, и там создавать Automation Object(s) :-))
тогда в VBA все просто -
set Obj = CreateObject("<ProgID>")
и пользуешься, как обычным объектом


 
sova   (2002-11-12 12:56) [4]

Я делал как написано http://delphi.mastak.ru/articles/usedll/index.html,

а в VBA типа:
Declare Function GetMyIP Lib "<name>.dll" Alias "GetMyIP" (MyIP As String) As Long

Проблема только когда в библиотеке возникает исключение, после этого приходится перегружать Ворд


 
IDKFA ©   (2002-11-12 12:57) [5]

Вот тебе ссылка - почитай(там нормально написано):
http://www.compress.ru/Article.asp?id=990


 
Dimka Maslov ©   (2002-11-12 13:01) [6]

>sova
В таком случае в теле экспортируемой функции должен находится блок try..except..end

function ExportFunc(....
begin
try
...
except
end;
end;


 
Андрей Сенченко ©   (2002-11-12 16:02) [7]

У меня не работало пока не надоумили, что нужно хотя-бы иногда соблюдать соглашения о вызовах.

Вот эта DLL вполне нормально поднималась VBA-шниками

LIBRARY convert;
uses
Windows, Graphics, JPEG;

Procedure bmp2jpg(bmpname,jpgname : PChar); stdcall;
var
JPGpic: TJPEGImage;
BMPpic: TBitmap;
begin
JPGpic := TJPEGImage.Create;
BMPpic := TBitmap.Create;
Try
BMPpic.LoadFromFile(BMPName);
JPGpic.Assign(BMPpic);
JPGpic.SaveToFile(JPGName);
Finally
JPGpic.Free;
BMPpic.Free;
End { Try }
end;

Procedure jpg2bmp(bmpname,jpgname : PChar); stdcall;
var
JPGpic: TJPEGImage;
BMPpic: TBitmap;
begin
JPGpic := TJPEGImage.Create;
BMPpic := TBitmap.Create;
Try
JPGpic.LoadFromFile(JPGName);
BMPpic.Assign(JPGpic);
BMPpic.SaveToFile(BMPName);
Finally
JPGpic.Free;
BMPpic.Free;
End { Try }
end;

Exports
bmp2jpg,
jpg2bmp;
end.


 
KINDA   (2002-11-12 17:08) [8]

Огромное всем спасибо, все работает.



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

Текущий архив: 2002.11.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-69309
Acorus
2002-11-12 13:55
2002.11.21
Length для массивов в


14-69563
kingdom
2002-11-01 13:52
2002.11.21
Ищу человека! Shamsudin


1-69379
Explorer
2002-11-10 13:03
2002.11.21
Игра


1-69417
Cheester[X3]
2002-11-10 17:45
2002.11.21
Buttonы


3-69169
Leonon
2002-10-31 15:59
2002.11.21
Знатокам SQL посвящается...