Вниз
Скачать: CL | DM;

2 вопроса про DLL   Найти похожие ветки 

← →
Andrew1_1   (2003-10-26 21:32) [0]

У меня такой вопрос:
Можно ли в dll-ке управлять кнопкой (или формой, это не важно..) из exe-шника? Например:

{1}
library mydll;

uses
Windows, Messages, SysUtils, Classes, Unit1;

{$R *.res}

Function Sum1(a: shortstring): shortstring; stdcall;
begin
Result := Unit1.Form1.Caption + a;
{Вот это не срабатывает, ошибка выводится}
end;

Exports Sum1;

....

{2}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
{Из DLL}
function Sum1(a: shortstring): shortstring; stdcall; External "Mydll.dll";
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:= Sum1("aaa");
end;

.....

И еще один вопрос: Почему нельзя использовать тип string - проходит только с shortstring ?
И вообще не подскажете, где можно найти побольше материала об использовании dll ?


← →
Feofan ©   (2003-10-26 21:45) [1]

>Result := Unit1.Form1.Caption + a;

1.А где Form1 создано то?

2.Лучше использовать PChar потому как оно надежнее!
Ты когда ДЛЛ создаешь там почитай чего за коментарии пишут в начале проекта.


← →
kavlad   (2003-10-27 09:28) [2]

> Result := Unit1.Form1.Caption + a;

Form1 из exe - dll должна получить на нее ссылку.


← →
REA ©   (2003-10-27 11:24) [3]

В принципе можно до определенной степени, но если предполагаются такие вызовы, лучше использовать BPL вместо DLL.


← →
Andrew1_1   (2003-10-27 11:28) [4]

>REA А как это сделать? Ну как получить ссылку на exe? У меня же есть в длл ссылка на unit1...


← →
REA ©   (2003-10-27 11:32) [5]

Вопросы некорректны. Что именно требуется?


← →
Andrew1_1   (2003-10-27 11:36) [6]

Короче, требуется чтобы работала функция Sum1. А она берет значение из Формы в unit1, которая(Unit1) относится к exe.
Как это сделать? =)


← →
panov ©   (2003-10-27 11:55) [7]

В функцию надо передавать значение поля, а не само поле.


← →
Andrew1_1   (2003-10-27 15:42) [8]

А у меня что передает???


← →
panov ©   (2003-10-27 16:08) [9]

А ты передаешь строку, а потом пытаешься обратиться к форме, которая определена неизвестно где, неизвестно как.
Передавай 2 параметра - значение Caption и a: shortstring



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.02 c
3-40917
Manticor
2003-10-19 16:12
2003.11.13
IBM DB2 Server и Delphi програма


3-40836
chtr
2003-10-21 14:22
2003.11.13
Ошибка Row cannot be located for updating


14-41930
default
2003-10-20 22:25
2003.11.13
Как поменять данные в своей анкете


4-42289
Cherepah
2003-09-13 02:06
2003.11.13
перехват клавиш win и alt+tab


1-41284
uu
2003-10-31 14:08
2003.11.13
round




   Наверх