Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2013, 18:26   #1
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Вопрос runtime error 216 at 5b261531 в dll при завершении приложения

Доброе время суток!
Всё в принципе работает но При завершении приложения вылетает ошибка,runtime error 216 at 5b261531
я перерыл всё но так и не понял что не так?
длл пока пустая практически,
Код:
library DBDLL;

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

//{$R *.res}


Function SplashFormS(Reference:String; IdleTime:integer):Boolean; stdcall;
var
  SplashForm: TForm;
  SplashImage: TImage;
begin
  SplashForm := TForm.create(nil);
  with SplashForm do
  begin
    BorderStyle := bsNone;
    Position := poScreenCenter;
    ClientWidth :=700; //Screen.Width
    ClientHeight :=450;// Screen.Height
   end;
    SplashImage := TImage.Create(SplashForm);
  with SplashImage do
    begin
   SplashImage.Picture.LoadFromFile(extractfilepath(Application.ExeName)+Reference);
    Stretch := true;
    Align := alClient;
    Parent := SplashForm;
    end;
  with SplashForm do
   begin
     Show;
      begin
      Repaint;
       Sleep(IdleTime);
      end;
     Close;
     Free;
   end;
 end;
exports SplashFormS;


Function Communication(const Reference:String):String; stdcall;
var
 Stream:TMemoryStream;
 url,r:WideString;
 i,j:integer;
 Prices:TIdHTTP;
 List:TStringList;
 begin
Prices:=TIdHTTP.Create(Prices);
Stream:=TMemoryStream.Create;
List:=TStringList.Create;
BEGIN
    try
List.LoadFromFile('Relocation.id');
url:= Reference; //ññûëêà íà íîâóþ âåðñèþ
//List.Strings[0]; //ññûëêà íà íîâóþ âåðñèþ
 for i:=1 to length(url) do
 begin
 if url[i]='.' then
 begin
 j:=i;
 end;
 end;
 r:=copy(url,j+1,length(url));
 Prices.Get(url,Stream);
 Stream.SaveToFile('DB\PricesDB.DB'); //ïóòü è íàçâàíèå êóäà ñîõðàíÿåì
 Stream.Free;
 except
      on e:Exception do
      Stream.Free; End;
      Communication:='Îáíîâëåíèå çàâåðøèíî'
End;
End;
exports Communication;

begin
end.
Но по пойму ошибка здесь но где именно не пойму:
Код:
 
Function SplashFormS(Reference:String; IdleTime:integer):Boolean; stdcall;
var
  SplashForm: TForm;
  SplashImage: TImage;
begin
  SplashForm := TForm.create(nil);
  with SplashForm do
  begin
    BorderStyle := bsNone;
    Position := poScreenCenter;
    ClientWidth :=700; //Screen.Width
    ClientHeight :=450;// Screen.Height
   end;
    SplashImage := TImage.Create(SplashForm);
  with SplashImage do
    begin
SplashImage.Picture.LoadFromFile(extractfilepath(Application.ExeName)+Reference);
    Stretch := true;
    Align := alClient;
    Parent := SplashForm;
    end;
  with SplashForm do
   begin
     Show;
      begin
      Repaint;
       Sleep(IdleTime);
      end;
     Close;
     Free;
   end;
 end;
exports SplashFormS;
Помогите разобраться.
За ранее благодарен.
С уважением,
Volkogriz!
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Stilet; 10.02.2013 в 18:55.
Volkogriz вне форума Ответить с цитированием
Старый 10.02.2013, 19:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ИМХО сплаш нужно вызывать из сопроцесса. Надежнее будет.
И я бы не в ДЛЛ ее посадил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2013, 22:43   #3
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Я просто решил убрать половину из exe и написать длл ку всё работает без проблем
но при добавлении этого куска ошибка, даже если функцию не используешь! (
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 10.02.2013, 23:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Сложно так сказать в чем именно проблема...
Ну попробуй избавится от String...
Я у себя его на TStringList или на TStringStream заменял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2013, 23:08   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Спасибо!
сейчас попробую!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 10.02.2013, 23:18   #6
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Заменил на
PAnsiChar
и в обще попытался убрать, всё равно в этом куске ошибка ((
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 12.02.2013, 18:08   #7
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Помещать SplashScreen в dll без особой необходимости нету смысла.
Думаю стоит заменить String на WideString...при том, что даже и используется ShareMem.
А вобще в таких случаях стоит отладить библиотеку и посмотреть, что приводит к падению...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 12.02.2013, 18:26   #8
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Попробуйте SplashImage.Picture.LoadFromFile вызывать после присвоения Parent
ReportCube вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Runtime error 216 [Delphi7 + JediVCL + IBExpress] AVZevs Общие вопросы Delphi 8 28.09.2012 12:11
Запуск exe/dll при завершении работы windows 7 AdoL Windows 1 24.12.2010 10:21
RUNTIME ERROR 216 при работе с DLL 100GRamm Общие вопросы Delphi 9 07.11.2009 13:37
создание dll при старте приложения и удаление при завершении TyoshA Общие вопросы Delphi 7 13.07.2009 13:56
error 216 Juffin Общие вопросы Delphi 6 05.04.2009 19:38