Delphi DLL Dynamic Error raise to many consecutive exception -


i found source code delphi sample codes, , adding control or component inside delphi dynamic dll, can't figure out,

library dllentrylib;  uses   sysutils,   windows,   dialogs,   classes,   mshtml,   shdocvw;  type tmyweb = class(twebbrowser) constructor create(aowner: tcomponent); override; end;  var web: tmyweb;  // initialize properties here constructor tmyweb.create(aowner: tcomponent); begin inherited create(self); end;  procedure getweb; begin     web := tmyweb.create(nil);     web.navigate('http://mywebsite.com'); end;   procedure xdllentrypoint(dwreason: dword); begin   case dwreason of     dll_process_attach:     begin     getweb; //i think error here, how work out?     showmessage('attaching process');     end;     dll_process_detach: showmessage('detaching process');     dll_thread_attach:  messagebeep(0);     dll_thread_detach:  messagebeep(0);   end; end;  begin   { first, assign procedure dllproc variable }   dllproc := @xdllentrypoint;   { invoke procedure reflect dll attaching     process }   xdllentrypoint(dll_process_attach); end.   //in application form. procedure tmainform.btnloadlibclick(sender: tobject); begin if libhandle = 0 begin libhandle := loadlibrary('dllentrylib.dll'); if libhandle = 0   raise exception.create('unable load dll'); end else messagedlg('library loaded', mtwarning, [mbok], 0); end; 

how rid of error? raise many consicutive exception

when write:

inherited create(self); 

you should write

inherited create(aowner); 

you asking control own itself. cannot work. quite possibly leads non-terminated recursion if constructor fails.

the other big problem creating web browser control inside dllmain. that's big no-no. you'll want stop doing that. move code separate exported function. nothing in dllmain.

presumably caller has initialized com. if not, need ensure caller so. if caller vcl forms app com initialized automatically.


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -