**************************************************** This part would be in VFP9FUNCTIONS.H **************************************************** #IF VERSION(5) < 900 #DEFINE BINTOC BINTOC_VFP9 #ENDIF **************************************************** CLEAR ?BINTOC(65,"4rs") ?BINTOC(65,4) #UNDEF BINTOC **************************************************** This part would be in VFP9FUNCTIONS.PRG **************************************************** FUNCTION BINTOC_VFP9(nValue, eFlags) IF VARTYPE(eFlags) = "N" RETURN BINTOC(nValue, eFlags) ENDIF DO CASE CASE UPPER(eFlags)="4RS" RETURN CHR(BITAND(nVal,0xFF))+; CHR(BITLSHIFT(BITAND(nVal,0x0000FF00),8))+; CHR(BITLSHIFT(BITAND(nVal,0x00FF0000),16))+; CHR(BITLSHIFT(BITAND(nVal,0xFF000000),24)) *!ToDo: more code required... OTHERWISE ENDCASE ENDFUNC ****************************************************>Hi Mark,
>*==================================================================== >* Converts a 32-bit integer variable (LONG) into a binary string. >*==================================================================== >Procedure APILongToChar >LParameter tnLong > > Local lcString > lcString = Space(4) > Declare RtlMoveMemory in Win32API as __LongToChar ; > String@, Long@, Integer > __LongToChar( @lcString, @tnLong, 4 ) > >Return m.lcString > >*==================================================================== >* Converts a binary string into a 32-bit unsigned integer. >*==================================================================== >Procedure APICharToLong >LParameter tcString > > Local lnLong > lnLong = 0 > Declare RtlMoveMemory in Win32API as __CharToLong ; > Long@, String@, Integer > __CharToLong( @lnLong, @tcString, 4 ) > If m.lnLong < 0 > lnLong = m.lnLong + 2^32 > Endif > >Return m.lnLong >