This post has arisen out of the one about virtual memory but I'm starting a new thread because I don't want it to get lost in the mix.
I have been trying to answer my own question about USE of clrwin by commenting out the 'use clrwin' statement and instead adding in explicit definitions of the various Salford @-functions - yes, there were one or two more than just winio@ 😮 but not I think enough to justify 280 MB :p . (At the moment, the answer appears to be that it makes no difference). In the process of doing this, I came across what appears to be a bug (two actually). After slashing and burning the code this is what I am left with:
program mainpr
use callbacks
iomain = winio@ ('%ti[icadam][]', ui_popup)
stop
end program mainpr
module callbacks
! use clrwin character*256 clearwin_string@ external clearwin_string@ contains ! integer function ui_popup () character (len = 256) treason ui_popup = 2 treason = clearwin_string@ ('CALLBACK_REASON') return end function ui_popup ! end module callbacks
When I try to build this code fragment, Mr Plato complains as follows:
WARNING the following symbols are missing: CALLBACKS!CLEARWIN_STRING# E:\rest\techy\ftn95 bugs\missing symbol\CheckMate\Win32\callba.obj (E:\REST\TECHY\FTN95 BUGS\MISSING SYMBOL\CALLBA.F95)
And sure enough, if I run the executable, it bombs out the first time it needs to use clearwin_string@. However, if I comment out the two lines that define clearwin_string@ and uncomment out the 'use clrwin' line instead - no problem.
Am I being Monday-braindead here or is FTN95 doing something it shouldn't? Andy