Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c