I have a working 32-bit software library written in Fortran with low-level stuff in C/C++ It has worked for years.
It is fine.
When I re-build the library in 64-bit mode, none of the C functions are linked in. I've checked the linker options, and they all seem to be right. The project appears to be referencing the 64-bit libraries.
Would someone mind just looking some sample INTERFACE code and tell me whether there is anything at all that would cause a problem
SUBROUTINE PBZQS(MODE, IXORIG, IYORIG, NX, NY)
INTEGER MODE
INTEGER IXORIG, IYORIG
INTEGER NX, NY
INTERFACE
SUBROUTINE JB_ZBSpecInquireImageSize(MODE, IXORIG, IYORIG, NX,
1 NY)
INTEGER MODE
INTEGER IXORIG, IYORIG
INTEGER NX, NY
!DEC$ ATTRIBUTES C, ALIAS: '_JB_ZBSpecInquireImageSize' ::
1 JB_ZBSpecInquireImageSize
!DEC$ ATTRIBUTES VALUE :: MODE
!DEC$ ATTRIBUTES REFERENCE :: IXORIG, IYORIG, NX, NY
END
END INTERFACE
CALL JB_ZBSpecInquireImageSize(MODE, IXORIG, IYORIG, NX, NY)
END
The linker comes up with:unresolved external symbol'_JB_ZBSpecInquireImageSize
Reassurance from someone "that should work" is all I need.
I observe that the project includes the library comdlg32.lib. Is that going to be right for a 64-bit application?
Is there an easy way to look at the contents of the .lib file that is being linked in?