Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание библиотеки [D7, XP]


Merry ©   (2006-10-07 16:11:00) 

Впервые создала библиотеку для функции перевода денег из цифр в пропись.
Почему-то при выполнении:
Edit2.Text:=TextSum(StrToFloat(Edit1.text));  
перевод проходит, в Edit2 я вижу результат,
но при этом выдаётся ошибка:"Invalid pointer operation."
Что она означает? Как от неё избавиться?
Я уже отправляла на форум эту функцию, многие пробовали, но ошибки такой ни у кого не возникало.
Может, всё дело в подключении библиотеки… Или что ещё. Уже не знаю, что делать.
Могу выслать библиотеку с этой функцией и демопрограмку, в которой и идёт эта ошибка.  Очень ЖДУ ПОМОЩИ!


Amoeba   (2006-10-09 13:32:00) [1]

На http://www.delphikingdom.comдавно уже есть несколько таких готовых библиотек.


Ученик чародея   (2006-10-08 03:22:00) [2]


> DrPass ©   (08.10.06 00:24) [9]
>
> > Merry   (07.10.06 19:00) [7]
>
> В чем же и смысл - тебе подсказали не само решение, а как
> решать задачи. Это намного более ценное знание ;-)


А еще вариант - передавать указатель на выделенную память в функцию в dll.

А если не обязательно thread safe, для всяких левых языков программирования типа PB, то объявлять глобальную переменную.

var GStr:string

function foo(S: double): string;
begin
//чето мутим

Gstr=ту строку которую намутили;
Result:=GStr;
end;


DrPass   (2006-10-08 00:24:00) [3]


> Merry   (07.10.06 19:00) [7]

В чем же и смысл - тебе подсказали не само решение, а как решатьзадачи. Это намного более ценное знание ;-)


Джо   (2006-10-07 19:21:00) [4]

> [7] Merry   (07.10.06 19:00)
> >MikePetrichenko ©   (07.10.06 18:26) [6]
> Спасибо УМНИКИ!!!
> Про ShareMem всё понятно.
> Нельзя было сразу сказать?
> Надо было типа:
> >Еще дольше читать коментарий Delphi.

А зачем врать было, что "читала"?


Merry   (2006-10-07 19:00:00) [5]

>MikePetrichenko ©   (07.10.06 18:26) [6]
Спасибо УМНИКИ!!!
Про ShareMem всё понятно.
Нельзя было сразу сказать?
Надо было типа:
>Еще дольше читать коментарий Delphi.


MikePetrichenko   (2006-10-07 18:26:00) [6]


> uses
>  Forms,
>  ffirst in 'ffirst.pas' {Form1},
>  first in 'first.pas';

Еще дольше читать коментарий Delphi, вставляемый в начало файла проекта при создании DLL.


Merry   (2006-10-07 17:38:00) [7]

>Leonid Troyanovsky ©   (07.10.06 17:08) [4]

program DllTest;

uses
 Forms,
 ffirst in 'ffirst.pas' {Form1},
 first in 'first.pas';

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.
--------------

Весь модуль ffirst:
unit ffirst;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, DB, Mask, DBCtrls, DBTables;

type

 TForm1 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   Edit2: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   procedure Button1Click(Sender: TObject);
 private
  { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation
uses first;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=TextSum(StrToFloat(Edit1.text));
end;
end.

------------------------------------------

A модуль first весь выглядит так:
unit first;

interface
function TextSum(S: double): string;

implementation
const
LibName='MyDll2.dll';
function TextSum;external LibName;
end.


Leonid Troyanovsky   (2006-10-07 17:08:00) [8]


> Merry   (07.10.06 16:54) [3]

> нет, но что не так? Я думаю, дискутировать излишне. Повторю:


Приведи здесь uses from ProjectX.dpr (for exe).

--
Regards, LVT.


Merry   (2006-10-07 16:54:00) [9]

В принципе, так я и делала. В этом и вопрос: видимых ошибок нет, но что не так? Я думаю, дискутировать излишне. Повторю:Могу выслать библиотеку с этой функцией и программку с её использованием.


Leonid Troyanovsky   (2006-10-07 16:17:00) [10]


> Merry   (07.10.06 16:11)  

> Может, всё дело в подключении библиотеки… Или что ещё. Уже
> не знаю, что делать.


Читать комментарий, вставляемый при File.. New .. Dll
До просветления.

--
Regards, LVT.


DrPass   (2006-10-07 16:14:00) [11]


> Впервые создала библиотеку для функции перевода денег из
> цифр в пропись

Если библиотека - DLL, то надо было внимательно прочитать Большой Комментарий, который был в dpr-файле библиотеки, и сделать так, как там написано.


Наверх

Титульная страница Поиск, карта сайта Написать письмо