If you're not already using madExcept to log/trap unhandled exceptions, you might like to give that a go, see if it gives you more info.
www.madshi.net Cheers, C. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert martin Thanks Rohit Trapping the exception in the dll and trying to show the message also fails (the app still disappears). But a good suggestion (Should have tried that 'much' earlier. Rohit Gupta wrote: > I dont know about widestrings, but ansistrings can be a problem with > dlls. Also note that if written in Delphi you have to handle all > exceptions inside the dll.... as the exception itself uses ansistring. > > Robert martin wrote: >> Hi again >> >> Further to my previous email I want to check that I have this right. >> I think I am doing something wrong in relation to passing variables. >> >> My dll Call is defined as >> >> TRunEFTPOS = Function(var Amount, CardType, ResCode: WideString; >> Account, MercRef, TransRef, HeaderLine, FooterLine : WideString) : >> Boolean; >> >> Note is users var parameters. >> >> >> This is my test calling code >> >> var >> RunIt : TRunEFTPOS; >> EFTPOSHandle : THandle; >> ARes : WideString; >> CardType : WideString; >> iRes : Integer; >> Amt : Extended; >> TestAmt : WideString; >> Authorised : Boolean; >> begin >> inherited; >> //RUN DLL >> >> CardType := ''; >> Amt := 10.95; >> TestAmt := FloatToStr(Amt); >> >> EFTPOSHandle := LoadLibrary('EftPos.dll'); >> if (EFTPOSHandle <> 0) then begin >> try >> @RunIt := GetProcAddress(EFTPOSHandle, 'RunIt'); >> >> if (@RunIt <> nil) then begin >> Authorised := RunIt(TestAmt, CardType, ARes, '1', '1', >> '12345' , 'Test eftpos', 'Test'); >> iRes := StrToIntDef(ARes, -1); >> >> if (Authorised = True) then begin >> >> ShowMessage(TestAmt); >> end; >> end; >> finally >> FreeLibrary(EFTPOSHandle); >> end; >> end; >> >> >> >> >> Could passing var parameters be the root cause of my problem? (This >> Dll was working fine previously) >> >> Also the calling app has Sharemem in the uses clause but the dll does >> not. Adding it to the dll causes an av 'after' running the dll in >> the test app, the main app still dies at the start. >> >> Any comments would be appreciated. >> >> Robert martin wrote: >>> Hi >>> >>> I have been using a (home made) DLL to interface between our app and >>> an eftpos systems ActiveX control. All worked well until we updated >>> their software. Now my app blows away when I try to create the >>> ActiveX (in the dll). However after much testing I have discovered >>> if I call the dll from behind a TAdvGlowButton (fancy glowing >>> button) it works ! but I get an error in GDIPlus.dll after the first >>> time. >>> >>> It seems to be some sort of issue between the dlls being used >>> (GDIPlus.dll and eftpos.Dll _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: [email protected] Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [EMAIL PROTECTED] with Subject: unsubscribe
