- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
We get the previous error when we upgraded from VF 6.5 to VF6.6. We have been using the same code since VF 6.0.B3 without this problem. A little background. We have a module that is part of a DLL. An application needs to use this module.
We define the module in the DLL project as follows...
MODULE tlm_raw_values
IMPLICIT NONE
...
INTERFACE OPERATOR (+)
MODULE PROCEDURE RV_PLUS_INT4,
+ RV_PLUS_RV
END INTERFACE
...
FUNCTION RV_PLUS_INT4 ( rv, i4 ) RESULT ( r )
TYPE (tlm_raw_value), INTENT (in) :: rv
INTEGER(4), INTENT (in) :: i4
TYPE (tlm_raw_value) r
!DEC$ ATTRIBUTES DEFAULT,DLLEXPORT :: RV_PLUS_INT4
...
END FUNCTION RV_PLUS_INT4
...
END MODULE tlm_raw_values
The function using this module within a separate application looks as such...
SUBROUTINE SDTINITBL ( ierr )
...
USE tlm_raw_values
IMPLICIT NONE
...
RETURN
END
No errors when compiling the DLL. We get the following error when compiling the EXE:
Warning: DEC$ ATTRIBUTES DLLIMPORT is ignored for non-external procedure. [RV_PLUS_INT4]
Any ideas? Is this a compiler bug?
We define the module in the DLL project as follows...
MODULE tlm_raw_values
IMPLICIT NONE
...
INTERFACE OPERATOR (+)
MODULE PROCEDURE RV_PLUS_INT4,
+ RV_PLUS_RV
END INTERFACE
...
FUNCTION RV_PLUS_INT4 ( rv, i4 ) RESULT ( r )
TYPE (tlm_raw_value), INTENT (in) :: rv
INTEGER(4), INTENT (in) :: i4
TYPE (tlm_raw_value) r
!DEC$ ATTRIBUTES DEFAULT,DLLEXPORT :: RV_PLUS_INT4
...
END FUNCTION RV_PLUS_INT4
...
END MODULE tlm_raw_values
The function using this module within a separate application looks as such...
SUBROUTINE SDTINITBL ( ierr )
...
USE tlm_raw_values
IMPLICIT NONE
...
RETURN
END
No errors when compiling the DLL. We get the following error when compiling the EXE:
Warning: DEC$ ATTRIBUTES DLLIMPORT is ignored for non-external procedure. [RV_PLUS_INT4]
Any ideas? Is this a compiler bug?
링크가 복사됨
1 응답
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
The message is a bug. I think the 6.6A update suppresses it.
Steve
Steve
