Skip to main content

Experience with Net Express 5.0 under Windows 11?

  • November 17, 2021
  • 14 replies
  • 1 view

Hi, 

although Net Express was no longer supported under Windows 10, we had no problems there.

Under Windows 11 we unfortunately get crashes (C++ runtime exception) when we use the Windows API call SHBrowseForFolder.

It seems that the crash depends on when MFOLECL.DLL is loaded.

Has anyone already had such experiences?

Regards

Wolfgang

14 replies

Claude Greiner
  • Participating Frequently
  • 322 replies
  • November 18, 2021

Hi, 

although Net Express was no longer supported under Windows 10, we had no problems there.

Under Windows 11 we unfortunately get crashes (C++ runtime exception) when we use the Windows API call SHBrowseForFolder.

It seems that the crash depends on when MFOLECL.DLL is loaded.

Has anyone already had such experiences?

Regards

Wolfgang

This will not works and not supported from MicroFocus!

MF declare that only Netexpress 5.1 will work on Windows 10.
Can you publish what you have done to have Netexpress 5.0 on Windows 10, 32 or 64 bit, wich version of Win10?

Thanks for answer!

Yes we missed all a functional version of Netexpress 6.0 with the state of vc7.0 (without dotnet)


Chris Glazier
Forum|alt.badge.img+2
  • Moderator
  • 3697 replies
  • November 19, 2021

This will not works and not supported from MicroFocus!

MF declare that only Netexpress 5.1 will work on Windows 10.
Can you publish what you have done to have Netexpress 5.0 on Windows 10, 32 or 64 bit, wich version of Win10?

Thanks for answer!

Yes we missed all a functional version of Netexpress 6.0 with the state of vc7.0 (without dotnet)

Just for the record, Micro Focus does not officially support Net Express 5.1 on Windows 10. The last OS that was officially supported by NX5.1 was Windows 7 and only if you had wrappack 4 or higher installed.

Although NX 5.1 may run OK under Windows 10 it is not officially tested or supported.

Visual COBOL is the sucessor product to Net Express and it should be used for development on all newer modern platforms.


Claude Greiner
  • Participating Frequently
  • 322 replies
  • January 22, 2022

Hi, 

although Net Express was no longer supported under Windows 10, we had no problems there.

Under Windows 11 we unfortunately get crashes (C++ runtime exception) when we use the Windows API call SHBrowseForFolder.

It seems that the crash depends on when MFOLECL.DLL is loaded.

Has anyone already had such experiences?

Regards

Wolfgang

Netexpress 5.0 works fine on Win10 and Win11 last edition without any problems!

This for information and it is not ok if MF refuse support on this os! It is the same netexpress version running also under Win7.

Not everybody want to use visual studio or eclipse! We need a netexpress 7.0 with the same modules for VS7.0 (without .net or eclipse)


  • 0 replies
  • January 28, 2022

This will not works and not supported from MicroFocus!

MF declare that only Netexpress 5.1 will work on Windows 10.
Can you publish what you have done to have Netexpress 5.0 on Windows 10, 32 or 64 bit, wich version of Win10?

Thanks for answer!

Yes we missed all a functional version of Netexpress 6.0 with the state of vc7.0 (without dotnet)

On windows 10 we have no problems with Netexpress 5.0. On Windows 11 we were able to work around the problems by adjusting the call order of DLLs.


Claude Greiner
  • Participating Frequently
  • 322 replies
  • January 28, 2022

On windows 10 we have no problems with Netexpress 5.0. On Windows 11 we were able to work around the problems by adjusting the call order of DLLs.

Hi Wolfgang,

What do you mean with "adjusting the call order of DLLs"?

Can we stay in contact to exchange our experience? Then send me a private message!
I use the same code for Win7, Win10 and now Win11!

cg


  • 0 replies
  • February 7, 2022

Hi Wolfgang,

What do you mean with "adjusting the call order of DLLs"?

Can we stay in contact to exchange our experience? Then send me a private message!
I use the same code for Win7, Win10 and now Win11!

cg

We have observed that it makes a difference when SHBrowseForFolder is called. That's why we make a dummy call to SHBrowseForFolder when the program starts to avoid problems later.


  • Rocketeer
  • 19312 replies
  • February 7, 2022

We have observed that it makes a difference when SHBrowseForFolder is called. That's why we make a dummy call to SHBrowseForFolder when the program starts to avoid problems later.

Hi Wolfgang Köhnke

We found that calls with UNC names (\\\\hs-xy\\c$\\file.* work fine, but not N:\\file.*

May I ask what the dummy call you mentioned looks like when you start the program? Code ?

Many thanks for the help.

Michael


Claude Greiner
  • Participating Frequently
  • 322 replies
  • February 8, 2022

Hi Wolfgang Köhnke

We found that calls with UNC names (\\\\hs-xy\\c$\\file.* work fine, but not N:\\file.*

May I ask what the dummy call you mentioned looks like when you start the program? Code ?

Many thanks for the help.

Michael

01  pfad      pic x(255) value "c:\\xyz"

call winapi SHBrowseForFolderA using pfad return-code

or a little bit others...


Stephen Gennard
Forum|alt.badge.img
  • Rocketeer
  • 150 replies
  • February 8, 2022

01  pfad      pic x(255) value "c:\\xyz"

call winapi SHBrowseForFolderA using pfad return-code

or a little bit others...

Please take care to pass in the right information to an API, this API takes a pointer to a structure called BROWSERINFO which contains pointers/function pointers.   

Any API may crash or cause stack corruption if you pass junk into it.   

In this example, you end up creating pointer in the structure that has the hex value 0x20202020 due to pfad containing spaces.

PIDLIST_ABSOLUTE SHBrowseForFolderA( [in] LPBROWSEINFOA lpbi );



Claude Greiner
  • Participating Frequently
  • 322 replies
  • February 8, 2022

Please take care to pass in the right information to an API, this API takes a pointer to a structure called BROWSERINFO which contains pointers/function pointers.   

Any API may crash or cause stack corruption if you pass junk into it.   

In this example, you end up creating pointer in the structure that has the hex value 0x20202020 due to pfad containing spaces.

PIDLIST_ABSOLUTE SHBrowseForFolderA( [in] LPBROWSEINFOA lpbi );


Thanks, this can be read by microsoft, but now the code in MF-Cobol!

Thanks for your great help!


  • 0 replies
  • February 12, 2022

Netexpress 5.0 works fine on Win10 and Win11 last edition without any problems!

This for information and it is not ok if MF refuse support on this os! It is the same netexpress version running also under Win7.

Not everybody want to use visual studio or eclipse! We need a netexpress 7.0 with the same modules for VS7.0 (without .net or eclipse)

I also subscribe and demand to MF, the need to have an updated and compatible version of NetExpress for win10/win11.
Although VCVS 7.0, as reported by MF, is the product that replaces NetExpress, for me, it is much more complex, more extensive, requires Visual Studio from MS, and demands to install many MS resources to work properly.


  • Rocketeer
  • 19312 replies
  • February 23, 2023

Thanks, this can be read by microsoft, but now the code in MF-Cobol!

Thanks for your great help!

Good afternoon,
I have the same problem on windows 11.
if I run SHBrowseForFolder at the beginning of the program,
it stops giving the error and everything works fine in windows 11.

Could you please provide me with the code used with SHBrowseForFolder, without it opening the request window.

Thanks in advance for your help.


Claude Greiner
  • Participating Frequently
  • 322 replies
  • February 23, 2023

Good afternoon,
I have the same problem on windows 11.
if I run SHBrowseForFolder at the beginning of the program,
it stops giving the error and everything works fine in windows 11.

Could you please provide me with the code used with SHBrowseForFolder, without it opening the request window.

Thanks in advance for your help.

not a problem with netexpress 5.x, also VC8.x tested on win7, win10 win11 always latest edition

working-storage section.
78 SHBrowseForFolder value "SHBrowseForFolder" & Suffix.
*
01 browse-info.
05 hwndOwner pic x(4) comp-5.
05 pidlRoot pointer value null.
05 pszDisplayName pointer.
05 lpszTitle pointer.
05 ulFlags pic x(4) comp-5 value 0.
05 lpfn pointer value null.
05 lParameter pic x(4) comp-5 value 0.
05 iImage pic x(4) comp-5 value 0.
*
procedure division.
perform verzeichnis-browser
/
verzeichnis-browser section.
move ' ' to ws-verzeichnis
string 'c:\\' delimited by size
x'00' delimited by size
into ws-verzeichnis
call 'VerzeichnisBrowsen' using ws-verzeichnis
cancel 'VerzeichnisBrowsen'
.

* Entrypoint in other program that can be call from all programs
/
Entry "VerzeichnisBrowsen" using ws-verzeichnis.
*> Windows-Browser wird geöffnet
call winapi SHBrowseForFolder using browse-info
returning lpItemIDList
if lpItemIDList not = null
*> Ausgwähltes Verzeichnis wird in verzeichnis gesetzt
call winapi SHGetPathFromIDList using by value lpItemIDList
by reference verzeichnis
returning status-code
if status-code = 1
move ' ' to ws-verzeichnis
string verzeichnis delimited by x'00'
'\\' delimited by size
into ws-verzeichnis
else
move all '?' to ws-verzeichnis
end-if
end-if
exit program
.


  • Rocketeer
  • 19312 replies
  • February 24, 2023

not a problem with netexpress 5.x, also VC8.x tested on win7, win10 win11 always latest edition

working-storage section.
78 SHBrowseForFolder value "SHBrowseForFolder" & Suffix.
*
01 browse-info.
05 hwndOwner pic x(4) comp-5.
05 pidlRoot pointer value null.
05 pszDisplayName pointer.
05 lpszTitle pointer.
05 ulFlags pic x(4) comp-5 value 0.
05 lpfn pointer value null.
05 lParameter pic x(4) comp-5 value 0.
05 iImage pic x(4) comp-5 value 0.
*
procedure division.
perform verzeichnis-browser
/
verzeichnis-browser section.
move ' ' to ws-verzeichnis
string 'c:\\' delimited by size
x'00' delimited by size
into ws-verzeichnis
call 'VerzeichnisBrowsen' using ws-verzeichnis
cancel 'VerzeichnisBrowsen'
.

* Entrypoint in other program that can be call from all programs
/
Entry "VerzeichnisBrowsen" using ws-verzeichnis.
*> Windows-Browser wird geöffnet
call winapi SHBrowseForFolder using browse-info
returning lpItemIDList
if lpItemIDList not = null
*> Ausgwähltes Verzeichnis wird in verzeichnis gesetzt
call winapi SHGetPathFromIDList using by value lpItemIDList
by reference verzeichnis
returning status-code
if status-code = 1
move ' ' to ws-verzeichnis
string verzeichnis delimited by x'00'
'\\' delimited by size
into ws-verzeichnis
else
move all '?' to ws-verzeichnis
end-if
end-if
exit program
.

Hello Greiner Claude,
thank you very much for your help and for allowing me to use your code.