Вниз
Скачать: CL | DM;

Что за ошибка: Invalid pointer operation.   Найти похожие ветки 

← →
Hawk2 ©   (2003-09-02 19:43) [0]

Вот решил разобраться с DLL. Для лучьшего понимания решил начать с простого. Создаю библиотеку с вот такой функцией:

library DLLProject1;
uses
SysUtils,
Classes;

{$R *.RES}
function Conv(Str:string):string;
var i:integer;
Str2:string;
begin
For i:=Length(Str) downto 0 do
begin
Str2:=Str2+Str[i];
end;
Conv:=Str2;
end;
exports Conv;
begin
end.

и программа которая эту ф-цию использует:

unit Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function Conv(Str:string):string; external "DLLProject1.dll";
var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=Conv(Edit1.Text);
end;
end.

ввожу текст в поле, нажимаю кнопку и тут вылетает ошибка: Invalid pointer operation.

P.S. И еще, только обнаружил, если вводить строку в два символа, то все работает нормально, а если больше - глюк. Где что не так?


← →
Skier ©   (2003-09-02 19:51) [1]

Начнём отсюда For i:=Length(Str) downto 0 do
Дальше сложнее...


← →
Hawk2 ©   (2003-09-02 19:59) [2]

Если поставить For i:=Length(Str) downto 1 do ошибка остается, но теперь хавает строку размером в три символа, а четире и больше ругается.


← →
Fog ©   (2003-09-02 20:01) [3]

Нет дело не в этом (ну может и в этом тоже...) вообщем не function Conv(Str:string): string; а function Conv(Str:string): PChar;


← →
Skier ©   (2003-09-02 20:03) [4]

>Hawk2 © (02.09.03 19:59)
Теперь так :
Создай новый проект File | New | DLL
После создания увидишь большой комментарий.
Тебе следует его внимательно прочитать.


← →
Hawk2 ©   (2003-09-02 22:56) [5]

Ребята спасибо, иногда пока не "ткнуть носом" не дойдет :)


← →
Zheks ©   (2003-09-03 01:34) [6]

да, пустяки...


← →
Amoeba   (2003-09-03 12:21) [7]

Есть альтернатива использованию стандартного sharemem, при этом более не требуется Borlndmm.dll
http://www.codexterity.com/fastsharemem.htm



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
3-48475
lesalesa
2003-08-22 17:31
2003.09.15
Перерисовка scrollbar в dbGrid?


1-48602
Sirakuz
2003-09-03 13:01
2003.09.15
Выключить ScrollBar в ListView


1-48524
Марат
2003-09-04 14:49
2003.09.15
Формы


9-48384
BANick
2003-03-07 20:28
2003.09.15
Люди подскажите как в ОПЕНГЛ тесктуру прозрачной сделать


3-48419
sash2
2003-08-25 22:28
2003.09.15
Копирвание Dbf файлов.




   Наверх