说我有这个程序界面和那些变量:
dcl-pi *n varchar(5000);
fileName char(10) const;
newRecord char(5000) const;
end-pi;
dcl-s valueNew char(5000) inz;
dcl-s ptrMyGraph pointer inz(*null);
dcl-s myGraphic graph(160) based(ptrMyGraph);
现在我在valueNew
变量中移动一个大条目字符串,即记录格式。
这是一个graphic(40)
子字段。
valueNew = %subst(newRecord:i:fieldHeader.length);
然后我将valueNew
的内存空间复制到真实图形变量。
ptrMyGraph = %alloc(fieldHeader.length);
memcpy(ptrMyGraph:%addr(valueNew):fieldHeader.length);
我理论上应该获得一个可表示的图形变量。但事实并非如此。 我做错了什么?