Hello everybody
I have installed Progress 91D (32bits) on a HP-UX 64bits box, but I had a problem reading a value from a pointer I supposed this is because in a 64bit environment the pointer value uses a 8 byte instead 4 bytes on 32bits, but there is a way to working around this problem to read the pointer value?? I need this value to pass a external C program to run on OS.
This is the snippet of code...
DEFINE VARIABLE Mptr AS MEMPTR.
DEFINE VARIABLE CString AS CHARACTER NO-UNDO.
SET-SIZE(Mptr)= 53631385.
PUT-BYTE(Mptr,1) = 65.
PUT-STRING(Mptr,213) = "SmartNews 2003".
CString = GET-STRING(Mptr,213). /* OK return the string */
DISPLAY CString format "x(50)".
display get-pointer-value(mptr) . /* Here is the problem, on UNIX 64 this statement return ?, but in Windos XP 32 bits it returns a correct value */
SET-SIZE(MPTR) = 0.
Thanks in advance
I have installed Progress 91D (32bits) on a HP-UX 64bits box, but I had a problem reading a value from a pointer I supposed this is because in a 64bit environment the pointer value uses a 8 byte instead 4 bytes on 32bits, but there is a way to working around this problem to read the pointer value?? I need this value to pass a external C program to run on OS.
This is the snippet of code...
DEFINE VARIABLE Mptr AS MEMPTR.
DEFINE VARIABLE CString AS CHARACTER NO-UNDO.
SET-SIZE(Mptr)= 53631385.
PUT-BYTE(Mptr,1) = 65.
PUT-STRING(Mptr,213) = "SmartNews 2003".
CString = GET-STRING(Mptr,213). /* OK return the string */
DISPLAY CString format "x(50)".
display get-pointer-value(mptr) . /* Here is the problem, on UNIX 64 this statement return ?, but in Windos XP 32 bits it returns a correct value */
SET-SIZE(MPTR) = 0.
Thanks in advance