Ошибка приложения Delphi с Ole в DLL - PullRequest
0 голосов
/ 06 августа 2010

У меня есть объект Com, настройка / создание / работа с модулем данных.

Создание / запуск / освобождение модуля данных из приложения работает без проблем.

но если поместить модуль данных в DLL-библиотеку в первый раз, работает нормально, запускается объект com и т. Д., Но после нескольких вызовов без перезапуска приложения появляется эта ошибка.

Изображение сообщения об ошибке http://darkaxi0m.name/so/errormessage.GIF

В приложении есть немного кода, поэтому я не могу опубликовать все это, Я пробовал MadExcept и в приложении, и в Dll, но без удачи. IDE ломается в точке, которая не очень помогает ...

альтернативный текст http://darkaxi0m.name/so/cpubreak.gif

это код, который обрабатывает DataModule, одна и та же функция используется в приложении и Dll в обоих тестах

function GetAmount( Amount : integer; var Info: PChar): integer; stdcall;
 var
  tempInfo: string;
   workerDM : TworkerDM;
 begin
  Result := 0;    
  workerDM := TworkerDM.Create(nil);
    try      
      tempInfo:= Info;
      Result := workerDM.GetAmount(Amount, tempInfo);
      StrPCopy(Info, tempInfo);
    finally
      workerDM.Free;
    end;
 end;

Я хотел бы обвинить Оле-объект, но он прекрасно работает из Dll

Я даже не могу понять, с чего начать.

Ответы [ 2 ]

1 голос
/ 06 августа 2010

В finally вы звоните Free, но должны позвонить workerDM.Free.

0 голосов
/ 06 сентября 2011

Я не верю, что на этот вопрос можно ответить больше. Проект был очищен, и объект, который выдает ошибку, больше не используется.

Мой Удалить Запросы остались без ответа.

Так что теперь это мой ответ.

...