Skip to main content

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

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)


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.


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)


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.


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


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.


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


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...


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 );



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!


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.


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.


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
.


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.