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

Вниз

Использование DLL   Найти похожие ветки 

 
Ivanov   (2005-08-13 08:09) [0]

Мастера, подскажите пожалуйста: есть исполнимый файл содержащий
...
var
x, y, z: Integer
...
x := StrToInt(Edit1.Text);
y := StrToInt(Edit2.Text);
далее необходимо подключить библиотеку Summa.dll, содержащую функцию
z := x+y;
И, снова в исполнимом файле:
Edit4.Text := IntToStr(z);
...
Мастера, если не трудно набросайте код для библиотеки, и для "подключения" её к exe-файлу. Спасибо.


 
TUser ©   (2005-08-13 08:13) [1]

В хелпе к delphi (и в примерах) есть примеры dll.


 
Tonich ©   (2005-08-13 12:15) [2]

это код твоей Dll


library DLLProject;

uses
 SysUtils,
 Classes;
{$R *.res}
function  ZFunction(x,y:extended):extended;stdcall;
begin
 Result := x+y;
end;

exports
ZFunction;
begin
end.


а это код хоста (твоего приложения)


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 Function ZFunction(x,y:extended):extended;stdcall;    external "DllProject.dll";
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit4.Text := FloatToStr(ZFunction(1,1));
end;

end.


это статический способ загрузки Dll

ой только я сейчас заметил у тебя там integer а я объявил  extended ну я думаю ты спаривишся с этим уже)


 
Ivanov   (2005-08-13 15:53) [3]

Спасибо, Tonich. То, что надо.
Правда, возникла новая проблема - решил добавить в проект Image, тоже через dll:
в бибилиотеке:

procedure Bmp(Bitmap;TBitmap);stdcall;
begin
Image1.Picture.LoadFromFile("1.bmp");
end;

exports
Bmp;

а в исполнимом файле после LoadLibrary (Image1 уже создан):

Bmp(?????)//Не могу понять что необходимо поставить в скобках.

Мастера, подскажите. А, может быть, есть более удобный способ вставить в проект рисунок из библиотеки?


 
Юрий Зотов ©   (2005-08-13 16:36) [4]

Если рисунок все равно грузится из файла, то при чем тут DLL? Прямо в проекте его и грузите, той же самой строчкой.


 
TUser ©   (2005-08-13 17:48) [5]

> Ivanov   (13.08.05 15:53) [3]

В Dll ничего не известно про Image1. Надо
procedure Bmp(Image: TImage);
begin
 Image.Picture.LoadFromFile()
end;

В проекте Bmp (Image1).


 
Ivanov   (2005-08-13 23:01) [6]

Библиотека почему-то отказывается признавать TImage. Если не трудно напишите пожалуйста полный код для Dll.


 
Yegorchic ©   (2005-08-14 00:15) [7]

В DLL в uses пропишите ExtCtrls. Должно вроде заработать.


 
Ivanov   (2005-08-15 21:32) [8]

Спасибо Yegorchic, бибилиотека откомпилировалась.
Правда возникла новая проблема - при нажатиии на кнопку по которой программа обращается к библиотеке процесс останавливается и появляется сообщение:
"Project Project6.exe raised exception class EAccess Violation with message "Access violation at address 011F6A27 in module "3.DLL". Read of address FFFFFFFF"."
Где искать причину неполадки я не понимаю. Мастера, подскажите кто может.



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

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

Наверх





Память: 0.47 MB
Время: 0.034 c
1-1125639191
bon
2005-09-02 09:33
2005.09.25
Чертёж Autocad на форме


2-1124097041
root187
2005-08-15 13:10
2005.09.25
ustanovka BDE


3-1123824916
Max4
2005-08-12 09:35
2005.09.25
"Слияние" полей, различных типов данных


14-1125299037
Layner
2005-08-29 11:03
2005.09.25
Русификация приложения через Translations Manager


14-1125345851
KilkennyCat
2005-08-30 00:04
2005.09.25
30 августа. С днем рождения!





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