![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание DLL [D6, Win2k]
KINDA © (2002-11-12 12:05:00)Уважаемые мастера, подскажите пожалуйста как создавать библиотеки
DLL в Delphi чтобы их можно было подключить в VBA проекте. Почему-то созданная при помощи DLL Wizard библиотека не хочет подключаться в VBA а в Делфи работает.
KINDA (2002-11-12 17:08:00) [1]Огромное всем спасибо, все работает.
Андрей Сенченко (2002-11-12 16:02:00) [2]У меня не работало пока не надоумили, что нужно хотя-бы иногда соблюдать соглашения о вызовах.
Вот эта 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.
Dimka Maslov (2002-11-12 13:01:00) [3]>sova
В таком случае в теле экспортируемой функции должен находится блок try..except..end
function ExportFunc(....
begin
try
...
except
end;
end;
IDKFA (2002-11-12 12:57:00) [4]Вот тебе ссылка - почитай(там нормально написано):
http://www.compress.ru/Article.asp?id=990
sova (2002-11-12 12:56:00) [5]Я делал как написано http://delphi.mastak.ru/articles/usedll/index.html,
а в VBA типа:
Declare Function GetMyIP Lib "<name>.dll" Alias "GetMyIP" (MyIP As String) As Long
Проблема только когда в библиотеке возникает исключение, после этого приходится перегружать Ворд
Romkin (2002-11-12 12:22:00) [6]Лучше действительно использовать ActiveX library, и там создавать Automation Object(s) :-))
тогда в VBA все просто -
set Obj = CreateObject("<ProgID>")
и пользуешься, как обычным объектом
stone (2002-11-12 12:17:00) [7]Тут вопрос не в том как и в чем создавать библиотеки, а как правильно подключать "чужие" библиотеки к VBA
Слесарь Матерящийся (2002-11-12 12:14:00) [8]ActiveX library?