Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

Создание библиотеки   Найти похожие ветки 

 
Merry   (2006-10-07 16:11) [0]

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


 
DrPass ©   (2006-10-07 16:14) [1]


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

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


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


> Merry   (07.10.06 16:11)  

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


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

--
Regards, LVT.


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

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


 
Leonid Troyanovsky ©   (2006-10-07 17:08) [4]


> Merry   (07.10.06 16:54) [3]

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


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

--
Regards, LVT.


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

>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.


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


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

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


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

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


 
Джо ©   (2006-10-07 19:21) [8]

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

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


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


> Merry   (07.10.06 19:00) [7]

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


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


> 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;


 
Amoeba ©   (2006-10-09 13:32) [11]

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



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

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
2-1160003886
Juri
2006-10-05 03:18
2006.10.22
DBGrid


15-1159711479
alexsis
2006-10-01 18:04
2006.10.22
ЧТо такое ???


15-1159463727
Chort
2006-09-28 21:15
2006.10.22
Проблема с картриджем


2-1159794490
Зацени
2006-10-02 17:08
2006.10.22
Задачка


2-1159911738
NetRaven
2006-10-04 01:42
2006.10.22
Работа с датой