Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Runntime error 217 при закрытии программы, при использовании DLL 
:(
    Опции темы
mistmax
Дата 22.9.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



Вообщем проблема заключается в том что, при закрытии программы, использующая DLL, появляется ошибка "Runtime error 217 at...".Помогите пожалуйста убрать это нехорошее собщение...  До этого была ошибка Invalid pointer operation. Но после подключения модуля ShareMem в форму проекта , в сам исходник проектаи в DLL, она  исчезла.
Форма :
Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Memo1: TMemo;
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    public
    { Public declarations }
  end;

var
  Form1: TForm1;
  sl:TStringList;

implementation

function WDS_WForm_EExtract(Source:TStringList;sStart:string;sEnd:string):string;stdcall;External 'WDS.dll';
{$R *.dfm}


procedure TForm1.Button2Click(Sender: TObject);
begin
sl:=TStringList.Create;
sl.Assign(memo1.Lines);
showmessage(WDS_WForm_EExtract(sl,'<option value="101">','</option>'));


end;



end.



Сорс проекта :
Код

program Project1;

uses
  Forms,ShareMem,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

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


DLL'ка
Код

library WDS;


uses
  SysUtils,
  Classes,ShareMem;

{$R *.res}
function WDS_WForm_EExtract(Source:TStringList;sStart:string;sEnd:string):string;stdcall;
var
i:integer;
posStart,posEnd,posRelative:integer;
EExtract:string;
begin
   for i:=1 to source.Count do begin
    posStart:=AnsiPos(sstart,source.Strings[i]);
    if posStart>1 then
    begin
      posEnd:=AnsiPos(sEnd,source.Strings[i]);
      posRelative:=posEnd-(posStart+length(sStart));
      EExtract:=copy(source.Strings[i],posStart+length(sStart),posRelative);
      Result:=EExtract;
      exit;
    end;
end;
end;

   Exports
  WDS_WForm_EExtract;
begin
end.


Это сообщение отредактировал(а) mistmax - 22.9.2010, 19:16
PM MAIL   Вверх
CodeMonkey
Дата 22.9.2010, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89





--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0968 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.