Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
10-1127672414
френк
2005-09-25 22:20
2007.01.07
пара вопросов по COM


2-1166288517
Viper_Omsk
2006-12-16 20:01
2007.01.07
Процедура при нажатии на "крест"


2-1166271668
vitv
2006-12-16 15:21
2007.01.07
Проблема с DLL


1-1163631518
gosha73
2006-11-16 01:58
2007.01.07
Преобразование Untyped, что посоветуете?


15-1166106278
shulcsan
2006-12-14 17:24
2007.01.07
О среде разработки





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