Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание 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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо