Конференция "Corba" » Ошибка при повторном вызове процедуры ActiveX DLL из 1С [Delphi, Windows]
 
  • DeadAlice © (25.11.10 17:21) [0]
    Имеется dll, в ней имеется процедура.
    begin
    ...
    ipwIPPort1:=TipwIPPort1.Create(ipwIPPort1);
    ...
    ipwIPPort1.Free;
    ...
    end



    Подключаем ее, вызываем процедуру из 1С. В первый раз вызов срабатывает, на второй раз появляется неизвестная ошибка, на третий - 1С вылетает в трубу. Если в 1С выгружать библиотеку после одноразового вызова функции и загружать снова для каждого раза - все работает.

    Подозреваю, что это вызвано неправильным созданием/освобождением объекта, так как стоит его закомментировать - и процедура вызывается без проблем сколько угодно раз. Посоветуйте что-нибудь пожалуйста.
  • tesseract © (26.11.10 12:58) [1]
    В 1с есть прикол - там при загрузке компонент ДВА раза инициализируется. При этом он болтается в памяти. И при каждом  создании объекта может инициализироватся заново вызовом всех интерфейсов. В общем смотри какой у тебя там TreadingModel стоит. Да и отладчик кто отменил ?
  • DeadAlice © (26.11.10 18:34) [2]
    Про ThreadingModel можно чуть подробнее?
  • tesseract © (30.11.10 11:44) [3]
    Лучше пусть ms расскажет : http://msdn.microsoft.com/en-us/library/ms809971.aspx
 
Конференция "Corba" » Ошибка при повторном вызове процедуры ActiveX DLL из 1С [Delphi, Windows]
Есть новые Нет новых   [134427   +35][b:0][p:0.001]