Page 1 of 1

ShellExecute not working after July 2006 FWH update

Posted: Tue Jul 25, 2006 12:41 pm
by dpaterso
Hello,

The following command used to work (before updating to July 2006 build of FWH):

ShellExecute( oWndParent, 'Open', 'http://www.website.net/' )

Now I get an application error (you know - one of those send / don't send to Microsoft error messages).

Anybody know why (and how to fix)???

I have not made any changes at all to the code - only downloaded and installed FWH July 2006 today and did a full compile and re-link.


*** Edit since posting the above ***

This also does not work anymore:

...Action ( HelpIndex( ) )

Same error appears.


*** Edit again ***

By the way - I am using xHB Professional July 2006 RC7 Beta.


Regards,

Dale.

Posted: Wed Jul 26, 2006 9:54 am
by Antonio Linares
Dale,

> By the way - I am using xHB Professional July 2006 RC7 Beta

It looks as there are some problems with such RC7.

Have you tried it with Borland ?

Posted: Thu Jul 27, 2006 7:00 am
by dpaterso
Thanks Antonio for the reply.

I have managed to tie the problem down to this:

If I DO NOT explicitly add C:\FWH\SOURCE\CLASSES\WINDOW.PRG to the XHB Project then the errors occur.

I reverted back to xHB RC-6 and this made no difference.

I have to include C:\FWH\SOURCE\CLASSES\WINDOW.PRG in my list of .prg's otherwise I get the errors.

I used to make changes to your WINDOW.PRG but decided to stop doing this so I removed the module from my list of .prg's just after downloading and installing the latest FWH and xHB updates and that is why the problem has only become apparant now.

It would appear that the standard WINDOW.OBJ module that is linked into one of the libraries is causing the error.

Regards,

Dale.

Posted: Thu Jul 27, 2006 9:38 am
by Antonio Linares
Dale,

We will have to wait until the xHB final version is published to know if it works fine or not.

It looks as there are some conflicts with the recent xHB RCs, though FWH is working fine with Borland or Microsoft.

Posted: Thu Jul 27, 2006 9:50 am
by dpaterso
No problem - and thanks!

Regards,

Dale.

Posted: Thu Aug 03, 2006 6:21 am
by dpaterso
Hi Antonio,

Sorry to worry you with this again but I have (finally) received a reply from Ron Pinkas at xHB and his response was (and I quote):

"This suggests you need to rebuild FiveHMX.lib"

What do you make of this?

I don't understand why I would have to rebuild FiveHMX.lib.

I mean to say that Window.obj in the library is quite an important module (is it not) and I find it hard to believe that these are the only two functions contained in Window.obj that are being used by my application and these seem to be the only two problems that I have (at the moment anyway).

Notwithstanding that fact the last xHB Project File available on the xHB Website is for rebuilding the April 2005 release of FiveHMX.lib.

I don't understand any of this and do not know where to go from here.

Regards,

Dale.

Posted: Thu Aug 03, 2006 7:11 am
by Antonio Linares
Dale,

We are doing some tests here. We answer you asap.

Posted: Thu Aug 03, 2006 8:30 am
by dpaterso
Thanks - I know that I can rely on FWH!

Regards,

Dale.

Posted: Thu Aug 03, 2006 5:49 pm
by Antonio Linares
Dale,

This is a temporary workaround. Copy this code in your main PRG:

Code: Select all

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

typedef struct
{
   FARPROC farProc;
   BYTE bType;
   BYTE bReturn;
   BYTE bParams;
   BYTE bParam[ 15 ];
} STRFUNC;

HB_FUNC( GETPROCADDRESS )
{
   STRFUNC strFunc;
   BYTE b = 0;
   BYTE bFunc[ 4 ];

   strFunc.bParams = hb_pcount() - 4;
   
   if( ISNUM( 2 ) )
   {
      bFunc[ 0 ]      = hb_parni( 2 );
      bFunc[ 1 ]      = 0;
      strFunc.farProc = GetProcAddress( ( HMODULE ) hb_parnl( 1 ), ( LPSTR ) bFunc );
   }
   else
      strFunc.farProc = GetProcAddress( ( HMODULE ) hb_parnl( 1 ), hb_parc( 2 ) );

   strFunc.bType      = hb_parl( 3 );
   strFunc.bReturn    = hb_parni( 4 );

   while( b < strFunc.bParams )
   {
      strFunc.bParam[ b ] = hb_parni( 5 + b );
      b++;                // keep this here cause Borland 5
   }

   hb_retclen( ( char * ) &strFunc, sizeof( STRFUNC ) - 15 + strFunc.bParams );
}

#pragma ENDDUMP