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

type T_MSG in ifwinty.f90 seems not to work on 64bit

jaeger0
Beginner
1,480 Views
I want to report, that the T_MSG definition in ifwinty.f90 seems to be not defined correctly. I had problems using this type on my 64bit application and couldnt get any reasonable results from the GetMessage function, so I defined T_MSG2, which works. Seems that the sequence alignment does not work correctly in the 64bit version.

TYPE T_MSG ! origilal definition
SEQUENCE
integer(HANDLE) hwnd ! handles HWND
integer(UINT) message ! knowns UINT
integer(fWPARAM) wParam ! typedefs WPARAM
integer(fLPARAM) lParam ! typedefs LPARAM
integer(DWORD) time ! knowns DWORD
TYPE (T_POINT) pt ! typedefs POINT
END TYPE

TYPE T_MSG2 ! my definitions
integer(HANDLE) hwnd ! handles HWND
integer(UINT) message ! knowns UINT
integer(fWPARAM) wParam ! typedefs WPARAM
integer(fLPARAM) lParam ! typedefs LPARAM
integer(DWORD) time ! knowns DWORD
TYPE (T_POINT) pt ! typedefs POINT
END TYPE
0 Kudos
2 Replies
Steven_L_Intel1
Employee
1,480 Views
Did you copy the definition from IFWINTY.F90 or are you USEing the predefined module? The module is compiled with /align:sequence so that the components of SEQUENCE types are naturally aligned, which it seems to be what is wanted. If you take off SEQUENCE, you get much the same effect (but perhaps other issues).
0 Kudos
jaeger0
Beginner
1,480 Views
I worked with a copy of ifwinty.f90. I did not take ino account of the /align option
Ok then ifwinty.90 should be ok.
0 Kudos
Reply