Форум: "Основная";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
ВнизЧто за ошибка: 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 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.016 c