Главная страница
    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.052 c
7-42202
Alex134
2003-08-25 16:26
2003.11.13
опять про модем


8-41756
Ilg
2003-07-08 10:16
2003.11.13
Преобразование цвета в RGB


7-42142
-=@ndrew=-
2003-08-29 09:42
2003.11.13
System Tray...........


1-41501
killer
2003-11-04 12:36
2003.11.13
Как добавить библиотеку (MSHTML_TLB) как ActiveX, в секцию uses?


9-40764
scout
2003-04-17 20:33
2003.11.13
Стрельба в играх





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