*如何使用GET-指针-值.获得具有进度的mem指针?在Windows中,工作正常:
DEFINE VARIABLE vUNO AS MEMPTR.
DEFINE VARIABLE vDOS AS MEMPTR.
DEFINE VARIABLE vTRES AS MEMPTR.
DEFINE VARIABLE sUNO AS CHARACTER.
DEFINE VARIABLE sDOS AS CHARACTER.
DEFINE VARIABLE sTRES AS CHARACTER.
DEFINE VARIABLE rUno AS MEMPTR.
/*Para prueba, poner algo a UNO, DOS y TRES.*/
DEFINE VARIABLE PTR AS MEMPTR.
ASSIGN sUNO = "Uno"
sDOS = "Dos"
sTRES = "Tres"
SET-SIZE(vUNO ) = LENGTH(sUNO ) * 2
SET-SIZE(vDOS ) = LENGTH(sDOS ) * 2
SET-SIZE(vTRES ) = LENGTH(sTRES) * 2
PUT-STRING(vUNO , 1) = sUNO
PUT-STRING(vDOS , 1) = sDOS
PUT-STRING(vTRES, 1) = sTRES.
SET-SIZE(PTR) = 4 /*Apuntador a vUNO -> 1*/
+ 4 /*Apuntador a vDOS -> 5*/
+ 4. /*Apuntador a vTRES -> 9*/
/*
NOTA:
4 porque en arquitcturas a 32 bits apuntadores miden 4 bytes.
Checar en Unix porque Hp-Ux (de Axa) es a 64 bits (apuntadores a 8 bytes).
*/
/* [1] 2 3 4 [5] 6 7 8 [9] 10 11 12 */
MESSAGE PROGRAM-NAME(1) SKIP
GET-STRING(vUNO,1 ) "/" GET-POINTER-VALUE(vUNO) SKIP
GET-STRING(vDOS,1 ) "/" GET-POINTER-VALUE(vDOS) SKIP
GET-STRING(vTRES,1) "/" GET-POINTER-VALUE(vTRES) SKIP
VIEW-AS ALERT-BOX INFO BUTTONS OK./******************************************/返回:
---------------------------
Información
---------------------------
C:\GMM2000\Temp\p19350.cmp
Uno / 87066920
Dos / 85914720
Tres / 85914744
---------------------------
Aceptar
---------------------------但是,使用相同的代码Unix返回:
---------------------------
Información
---------------------------
/gmm2000/p13659.cmp
Uno / ?
Dos / ?
Tres / ?
---------------------------
Aceptar
---------------------------请注意!*
发布于 2012-03-21 16:17:53
我刚在10.2B Linux上试用了你的代码。它似乎奏效了:
┌────────── Information ──────────┐
│ /home/tom/p04012_Untitled1.ped │
│ Uno / 16817200 │
│ Dos / 16992512 │
│ Tres / 16992544 │
│ ─────────────────────────────── │
│ <OK> │
└─────────────────────────────────┘知道我们知道您正在HPUX上运行64位进度v9 .
在64位环境中,GET-指针值()返回64位结果。但是“进度”v9没有int64数据类型。尝试将结果赋值给十进制变量。应该能够保存这个值。
发布于 2012-03-22 01:32:54
HP-UX 64位AVM不为某些版本执行64位指针,因为外部接口只执行32位。不过,我忘记了哪个版本实现了完整的64位指针--这将是一个向PSC TS询问的问题。
https://stackoverflow.com/questions/9808102
复制相似问题