on the contrary, if I use early binding (ie declare the dll function as external) the it all works as expected. The problem I have is in trying to use late (dynamic) binding (ie using loadlibrary to load the dll and then get the process address for the (only) exported function.Experience is something you don't get until just after you need it.
Paul. ----- Original Message ----- From: "Niksen Harjanto" To: [email protected] Subject: Re: [delphi-en] Running Forms in DLLs Date: Sat, 20 Jun 2009 08:57:23 +0700 I was having similar problems with yours, strugling with DLLs, but thats the problem. MDI Child form can not be created from a dll. Use BPL (Borland Package Library) instead. Here some articles you can read. Sorry for my bad english... Niksen Harjanto On 6/19/09, Paul Bennett <[email protected]> wrote: > Hi all, > > A little bit of background first... > > I have a small application which basically consists of a MDI form > which acts as host to a series of plugin forms. The application is > relatively immature and subject to change. > > The application is only used at one site and all users have access to > a shared directory on the network where the most up to date versions > of the plugins are kept, this means it is relatively easy to check > that the application always has the latest versions of the plugins. > > Recently I have suffered from a bit of 'project creep', and I was > looking at a way of applying the same system of updating the > applications main form. > > The Problem... > > I decided to move all of the MDI Form (ie pretty much the whole > application) into a dll, create a Loader program which checks the > (local) dll version number against the (network) dll and downloads it > as necessary and then loads the dll and opens the form. > > This all seems to work fine, except... when the MDI form is closed > the application crashes with an unknown exception. > > I've checked the MDI Form and as far as I can tell every object that > is created as the form loads is freed and it unloads. > > The following is the Code for the Library Project. > > library FEBAPI; > > uses > ShareMem, > madExcept, > madLinkDisAsm, > Forms, > Dialogs, > MainUI in 'Source\MainUI.pas' {FrameworkUI}; > > {$R *.res} > > procedure RunFEB; stdcall; > var > FrameworkUI: TFrameworkUI; > begin > FrameworkUI := TFrameworkUI.Create(nil); > FrameworkUI.ShowModal; > FrameworkUI.Release; > end; > > exports RunFEB; > > begin > end. > > When stepping through the RunFEB method, after FrameworkUI.Release is > called, there are repeated calls to stdWinProc (around 5 at last > count) until the Application crashes with an unknown exception. > > Any pointers most gratefully received. > > Paul Bennett > > > > ------------------------------------ > > ----------------------------------------------------- > Home page: http://groups.yahoo.com/group/delphi-en/ > To unsubscribe: [email protected]! Groups Links > > > > [Non-text portions of this message have been removed] -- _______________________________________________ Surf the Web in a faster, safer and easier way: Download Opera 9 at http://www.opera.com Powered by Outblaze [Non-text portions of this message have been removed]

