Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

QuickWin - severe (172)

Neels
新貢獻者 II
1,674 檢視

While working away on my combination QuickWin / Xeffort project everything seemed fine. (Latest compiler, Win7, 64bit but creating a 32bit executable)) However when testing on a 32bit computer, both Win7 and WinVista it gives the error "forrtl: severe (172)" but before that it pops up with a bizarre request about there being no disk in the drive.

screen1.png

On canceling this the following error appears:

screen2.png

I have no idea even where to look. (I am an engineer, not a programmer)

 

0 積分
10 回應
Harry_A_
初學者
1,674 檢視

I probably won't be able to help you very much beyond this stage.  However, when I see a traceback message full of Unknowns, my next step is usually to create a Debug version and run that.  The traceback gthen ives much more information.

 

Neels
新貢獻者 II
1,674 檢視

This was the debug version with traceback.

Harry_A_
初學者
1,674 檢視

Maybe you intended to define an input or output file in a certain way and inadvertently defined it as something else.  If the file has a unit number and that number was a variable, maybe it was changed somehow.  If the file was named by a character string, maybe the name got corrupted.  These are the sorts of things that would go through my mind.

Neels
新貢獻者 II
1,674 檢視

I have narrowed it down to using a listbox with DFLOGM - which works and XFLOGM which gives the attached errors on a 32bit machine.

I tried compiling Xeffort with the latest compiler but it had no effect, using DFLOGM solves the issue.

The single biggest reason I have for using XFLOGM is this command:

  RetLog = DlgSet(Dlg, IDC_Button_OldPFile, .True.,  Dlg_Visible)

so if there is an easy way to do in DFLOGM.....

andrew_4619
榮譽貢獻者 III
1,674 檢視
use ifwin
integer(bool) :: bret

if( VIS) then
  ! to make visible
  bret = ShowWindow (GetDlgItem(Dlg%hwnd, IDC_BUTTON) , SW_HIDE ) 
else
  ! to make invisible
  bret = ShowWindow (GetDlgItem(Dlg%hwnd, IDC_BUTTON) , SW_SHOW) 
endif

 

If you have a lot of occurrences edit to say myDLGSET and create a simple routine based on the snipped above

andrew_4619
榮譽貢獻者 III
1,674 檢視

Use IFLOGM not DFLOGM! The D works because intel still have a dlfogm mod file that says use iflogm but it is well obsolete!

Neels
新貢獻者 II
1,674 檢視
Thanks Andrew, I will try that. I normally use IFLOGM but tried DFLOGM to see if it helps because Xeffort still uses DFLOGM. This software predates MSPowerstation, I started it on a VAX750 in the early 80's.
Neels
新貢獻者 II
1,674 檢視

Andrew,

I tried it and it does nothing, For both the hide and show cases it returns a bret value of 0. (Assume you swapped hide and show in your example?). Am I missing something?

Thanks

Neels

 

andrew_4619
榮譽貢獻者 III
1,674 檢視

Worked for me. would need to be called from a callback. remember that Dlg%hwnd is not initialised until dlgmodal has been called. Yes my comment on the code were inverted.... 

 

Neels
新貢獻者 II
1,674 檢視
Ok, from this I understand it must be in the callback routine and not in the routine that initializes the dialog box?
回覆