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

Вниз

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 вся ветка

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

Наверх





Память: 0.46 MB
Время: 0.061 c
1-41243
slivka
2003-11-01 00:43
2003.11.13
Помогите пожалуйста чайнику


1-41199
BKGG
2003-11-02 11:53
2003.11.13
как моей програме узнать с помощю чего (.bbb или .exe) он запусти


3-40933
stud
2003-10-17 11:39
2003.11.13
события в файрберд


14-42123
Brahman
2003-10-22 15:06
2003.11.13
Есть ли жизнь на Земле


14-42071
Valentin
2003-10-22 12:30
2003.11.13
Internet mail





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