Problems with FWH 8.10

Problems with FWH 8.10

Postby Marco Turco » Sat Oct 18, 2008 6:15 pm

Hi all,
I'am trying the new FWH 8.10 and I have some problems expecially with thirth part classes that access to the windows registry or call external dll.

Pls. take a look at this self-contained sample on
www.softwarexp.co.uk/beta/test.zip

This sample simply check using the tmutex class if another application is running.

With FWH May 2008 all runs fine meanwhile with FWH October 2008 it doesn't runs.

Any ideas ?

Thanks in advance
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Antonio Linares » Sun Oct 19, 2008 8:40 pm

Marco,

All PRGs that use DLL FUNCTION ... have to be recompiled with 8.10 (as DLL.ch has changed).
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Marco Turco » Mon Oct 20, 2008 7:45 am

Yes, I know
but I recompiled this self-contained sample using the buildx.bat you provided in the fwh\sample folder but it doesn't runs meanwhile all runs fine with FWH June 2008.

Are there any other changes to do ?

Marco
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Enrico Maria Giordano » Mon Oct 20, 2008 8:11 am

You have to replace GetProcAddress() with GetProcAdd(). Look at FWH whatsnew.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Antonio Linares » Mon Oct 20, 2008 10:52 am

Marco,

> but I recompiled this self-contained sample

You have to recompile the PRG where the DLL FUNCTION is defined, uisng the current 8.10 DLL.ch (please check that you are not using a previous one).

We had to do this change to keep Harbour/xHarbour compatibility.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Enrico Maria Giordano » Mon Oct 20, 2008 11:16 am

In Marco's sample there is a preprocessor directive that redefines DLL command. There he has to replace GetProcAddress() with GetProcAdd(), or just remove that directive.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Marco Turco » Tue Oct 21, 2008 7:46 pm

Ok. Solved replacing GetProcAddress() with GetProcAdd(),
thanks for the suggests Enrico & Antonio.

However I have now another problem with folder,
the following error appairs.

Note that in this specific situation I create the folder at runtime with:
oFld:=tFolder():New(......
oFld:LoadPages(.......
oFld:SetPrompt(.....

Any ideas ?

-----
Application
===========
Path and name: K:\ACTIVEXP\ACTIVEXP.Exe (32 bits)
Size: 3,473,920 bytes
Time from start: 0 hours 0 mins 7 secs
Error occurred at: 21/10/2008, 21:33:41
Error description: Error BASE/1005 Class: 'NIL' has no property: NHELPID
Args:
[ 1] = U
[ 2] = U

Stack Calls
===========
Called from: => _NHELPID(0)
Called from: .\source\classes\folder.PRG => TFOLDER:SETPROMPTS(0)
Called from: .\source\classes\folder.PRG => TFOLDER:NEW(0)
Called from: K:\pigc\ADDON32\UPDATED2\MODXP.PRG => MAKEWINDOW(341)
Called from: K:\ACTIVEXP\SOURCE\MODD1A.PRG => MODD1A(147)
Called from: K:\ACTIVEXP\SOURCE\ACTIVE.PRG => (b)MAIN(367)
Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:CLICK(0)
Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(0)
Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT(0)
Called from: .\source\classes\WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
Called from: K:\ACTIVEXP\SOURCE\ACTIVE.PRG => MAIN(388)

System
======
CPU type: Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz 2000 Mhz
Hardware memory: 2038 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Compiler version: xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
Windows version: 6.0, Build 6000
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Antonio Linares » Tue Oct 21, 2008 10:27 pm

Marco,

Yes, it is a bug (introduced in 8.10) in Class TFolder Method SetPrompts() that we have also detected it today. This is the right code:
Code: Select all  Expand view
METHOD SetPrompts( aPrompts, aHelps ) CLASS TFolder

   local n

   if ! Empty( aPrompts )
      ::aPrompts = aPrompts
   endif

   #ifndef __CLIPPER__
      TabDelAllItems( ::hWnd )

      for n = Len( ::aPrompts ) to 1 step -1
         TabCtrlAdd( ::hWnd, ::aPrompts[ n ], ::aEnable[ n ], n )
         if n <= Len( ::aDialogs )
            if ::aDialogs[ n ] != nil
               ::aDialogs[ n ]:nHelpid = If( Len( ::aHelps ) >= n, ::aHelps[ n ], nil )
            endif   
         endif   
      next

      SendMessage( ::hWnd, TCM_SETCURSEL, ::nOption - 1 )
      Super:Refresh()
   #endif

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Horizon » Wed Oct 22, 2008 7:37 am

Hi Marco,

Does TMutex works in Vista?. I have compiled your test program with replacing GetProcAddress() to GetProcAdd() in line 211 as below

Code: Select all  Expand view
Return GetProcAdd( hDLL, cFunc, lType, nRetType, nPType1, nPType2,;


When i try to run test.exe. it gives Error code:0 loading Kernel32.dll
Function:OpenMutexA

Thanks,
Regards,

Hakan ONEMLI

Harbour & MSVC 2022 & FWH 23.04
Horizon
 
Posts: 1322
Joined: Fri May 23, 2008 1:33 pm


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 68 guests