Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.045 c
1-1158216618
AndreyAR
2006-09-14 10:50
2006.10.22
Заполнение формулы в Excel


15-1159435468
Desdechado
2006-09-28 13:24
2006.10.22
Oriflame - нездоровые ассоциации :)


15-1159692378
Khabibulin
2006-10-01 12:46
2006.10.22
Научите меня SQL!


15-1159780072
buka
2006-10-02 13:07
2006.10.22
Микроволновые печи (МП)


6-1148771339
Ezorcist
2006-05-28 03:08
2006.10.22
По написанию нового компонета от TServerSocket и TClientSocket.





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