Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > System Error 1400


Автор: microo10 22.3.2014, 21:09
Пару дней назад возникла необходимость в написании плагина под Google Chrome с использованием NpApi.
Поискав исходники и почитав статьи по использованию API, я настрогал Dll'ку которая выводит форму Hellow World (Delphi) на Html страницу...но возникла проблема, плагин работает только до первой перезагрузки страницы, а затем выдает System Error 1400 - Недопустимый дескриптор окна.

Я перерыл весь код, но так и не смог исправить...надеюсь что кто нибудь сможет мне помочь. smile 

P.S если в NpForm.pas удалить 110 строку (if WindowHandle = 0 then exit) то плагин при обновлении функционирует нормально, но при каждом рефреше в Google Chrome создаются скрытые окна с формой (Hellow World) и это приводит к подвисанию...  

Код

procedure TFormPlugin.WindowHandleChanged ;
begin
  inherited WindowHandleChanged ;
  if WindowHandle = 0 then exit ;

  { set the clip children flag in the plugin window style so that }
  { the background isn't erased where the form is going to be.    }
  SetWindowLong( WindowHandle, GWL_STYLE,
                 GetWindowLong( WindowHandle, GWL_STYLE ) or WS_CLIPCHILDREN ) ;

  { we have a new window handle - create a form and resize it to fit }
  FPluginForm := CreatePluginForm ;
  try
    ResizePluginForm ;
    FPluginForm.Show ;
  except
    FPluginForm.Free ;
    FPluginForm := NIL ;
  end ;
end ;


Если ни кто не может помочь, то хотя бы посоветуйте как отлаживать dll с NpApi  smile 

Автор: microo10 23.3.2014, 13:11
Ну хоть кто нибудь, помогите отладить dll...

Автор: b8195108 23.3.2014, 16:44
Цитата(microo10 @  22.3.2014,  21:09 Найти цитируемый пост)
Если ни кто не может помочь, то хотя бы посоветуйте как отлаживать dll с NpApi   


Инсталлируй NPAPI-плагин из того места, куда он собирается из делфи (если мне не изменяет память, то в пути не должно быть пробелов).
Запускай страницу со своим плагином.
В делфи Run-Attach to process.
Ищешь нужный процесс хрома и присоединяешься к нему. 
Дальше можешь ставить бряки и отлаживать.

Вот ссылка на работающий плагин https://www.mozdev.org/bugs/show_bug.cgi?id=8708

Автор: stanilar 24.3.2014, 08:36
Можно попытаться использовать TChronium (как предложение).

Автор: microo10 26.3.2014, 12:54
b8195108, спасибо большое за исходники...а отладить мне так и не удалось...  smile 

Автор: b8195108 26.3.2014, 16:54
Не за что. 
Я отлаживал, так что ты скорей всего упустил какой-то момент.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)