HI I have just recomplied stable code with V8.60 and and getting error 1244 message('...is passed as a reference that should not be a constant nor an expression') for my clearwin calls
c fails to compile with 1244 message for arguments 2 & 3 SUBROUTINE GET_OS_VERSION(DESCRIPT, MAJOR_ID, MINOR_ID) c ======================== IMPLICIT NONE
INCLUDE <WINDOWS.INS>
CHARACTER*( * ) DESCRIPT
INTEGER MAJOR_ID, MINOR_ID
CALL GET_WOW_VER@(DESCRIPT, MAJOR_ID, MINOR_ID)
END
c compiles with no messages
SUBROUTINE GET_OS_VERSION(DESCRIPT, MAJOR_ID, MINOR_ID)
c ======================== IMPLICIT NONE
INCLUDE <WINDOWS.INS>
CHARACTER*( * ) DESCRIPT
INTEGER MAJOR_ID, MINOR_ID, MAJOR_ID_x, MINOR_ID_x
CALL GET_WOW_VER@(DESCRIPT, MAJOR_ID_x, MINOR_ID_x)
MAJOR_ID = MAJOR_ID_x
MINOR_ID = MINOR_ID_x
END
I can use this workaround for most of my clearwin calls but how do i handle the situation where i am passing a function reference
SUBROUTINE SET_CWP_FOCUS_MONITOR(IMODE, STM_FOCUS)
c ================================ IMPLICIT NONE INCLUDE <WINDOWS.INs> INTEGER IMODE INTEGER STM_FOCUS EXTERNAL STM_FOCUS IF (IMODE .EQ. 0) THEN CALL ADD_FOCUS_MONITOR@(STM_FOCUS) ELSE CALL REMOVE_FOCUS_MONITOR@(STM_FOCUS) ENDIF END
in all of these example i am only passing reference so there should not be an issue or am i missing something simple steve