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

dll   Найти похожие ветки 

← →
Com ©   (2006-12-17 18:57) [0]

Пробую создать ПРОСТЕЙШУЮ длл. Вроде все, как в учебнике, но программа ведет себя странно. Сначала получает значение из длл, а потом выдает invalid pointer operation. Вот код библиотеки и собственно программы:

library TestDLL;
uses
 SysUtils,
 Classes,
 Forms,
 Windows;

function Hello:string;
begin
 hello:="Preved!";
end;
exports
 Hello;
begin
end.


unit main;

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;
  function Hello:string; external "testdll.dll";
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
s:=Hello;
showmessage(s);
end;

end.


← →
Джо ©   (2006-12-17 18:59) [1]

> Пробую создать ПРОСТЕЙШУЮ длл. Вроде все, как в учебнике,
>

Когда создаешь DLL в дизайнере Делфи, он генерирует БОЛЬШОЙ  такой комментарий. Его и следует внимательным образом прочитать и усвоить.


← →
Com ©   (2006-12-17 19:01) [2]

Ну если он Вами усвоен, может подскажете?


← →
Джо ©   (2006-12-17 19:03) [3]

> [2] Com ©   (17.12.06 19:01)
> Ну если он Вами усвоен, может подскажете?

Зачем мне заниматься вольным пересказом того, что уже и так написано?


← →
Com ©   (2006-12-17 19:03) [4]

Все, усвоил... Спасибо!


← →
Com ©   (2006-12-17 19:10) [5]


> вольным пересказом

Вот так всегда.... Проще 10 сообщений написать вокруг да около, чем две строчки по теме. МАСТЕРА!


← →
Джо-со-смарта   (2006-12-17 19:29) [6]

Конечно, легче бегать клянчить и просить разжевать, чем самостоятельно читать справку и предупреждения среды.


← →
Джо-со-смарта   (2006-12-17 19:31) [7]

Тебе указали на источник информации, чего еще?


← →
Kostafey ©   (2006-12-18 00:19) [8]


> [6] Джо-со-смарта   (17.12.06 19:29)

Да будет Вам. Зачастую сама по себе задача не стоит того, чтобы решать все сопутствующие проблемы.
В одном согласен: по-другому не научишься.
НО как говориться, в какую сторону копать подсказать нужно.


> [0] Com ©   (17.12.06 18:57)

Дело в том, что у тебя форма-то только объявлена, но не создана.
Можно, например экспортировать еще одну процедуру для ее создания:

exports
 procedure CreateForms(Appl, Form: THandle);
...

procedure CreateForms(Appl, Form: THandle);
begin
 Application.Handle := Appl;
 Form1 := TForm1.Create(Application);


← →
Германн ©   (2006-12-18 00:29) [9]


> Дело в том, что у тебя форма-то только объявлена, но не
> создана.
> Можно, например экспортировать еще одну процедуру для ее
> создания:

Какая форма??? Ты о чём?


← →
Kostafey ©   (2006-12-18 00:33) [10]

> [9] Германн ©   (18.12.06 00:29)

Ух, хороший самогон был... %}


← →
DrPass ©   (2006-12-18 00:36) [11]


> Kostafey ©   (18.12.06 00:19) [8]

У него проблема не в форме. А в том, что он не прочитал Большой Синий Комментарий. Прочти и ты его, и поймешь, в чем была проблема


> Вроде все, как в учебнике, но программа ведет себя странно

...хотел бы я посмотреть на тот учебник


← →
Kostafey ©   (2006-12-18 00:41) [12]

Тогда все совсем просто: нужно string заменить на shortstring.


← →
Германн ©   (2006-12-18 00:55) [13]


> Kostafey ©   (18.12.06 00:41) [12]
>
> Тогда все совсем просто: нужно string заменить на shortstring.
>

Имхо, лучше на PChar. Тогда её можно будет пользовать в программах на других языках. А если нужно только на Дельфи, тогда лучше выполнить рекомендации из комментария.


← →
MetalFan ©   (2006-12-19 09:33) [14]

а еще лучше не использовать TForm )))



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

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



Память: 0.48 MB
Время: 0.025 c
9-1139091484
Galiaf
2006-02-05 01:18
2007.01.07
Full Screen в GlScene


2-1165418062
crasher
2006-12-06 18:14
2007.01.07
панель задач своими руками


15-1162982792
Lamer@fools.ua
2006-11-08 13:46
2007.01.07
[Вакансия] Киев, до $1000, Junior .NET Developer (C#)


15-1166203691
Loginov Dmitry
2006-12-15 20:28
2007.01.07
Чушь получается. Почему? Кто скажет?


2-1166377775
Святослав
2006-12-17 20:49
2007.01.07
drag and drop




   Наверх