First, we're running 2.3 Update 1 also. Second, we are doing class libraries instead of console apps. And third, we found how to get rid of the error. But being a career mainframe procedural programmer, the only idea I have as to why this works would mean multiple instances sharing memory.
This is what doesn't work:
class-id Level66dll.Class1.
working-storage section.
01 PREV-BC-CTL.
10 P-BRCLGROUP PIC 9 VALUE ZERO.
10 P-ENPG PIC 9 VALUE ZERO.
10 P-ERATE PIC X(5) VALUE SPACES.
10 P-FORM PIC X VALUE SPACE.
66 P-BC-NPG-RATE RENAMES P-BRCLGROUP THRU P-ERATE.
method-id InstanceMethod.
local-storage section.
procedure division.
MOVE SPACES TO P-BC-NPG-RATE
if P-BC-NPG-RATE = spaces
display "ok"
else
display "no"
end-if
goback.
end method.
end class.
And this does:
class-id Level66dll.Class1.
working-storage section.
01 PREV-BC-CTL.
10 P-BRCLGROUP PIC 9 VALUE ZERO.
10 P-ENPG PIC 9 VALUE ZERO.
10 P-ERATE PIC X(5) VALUE SPACES.
10 P-FORM PIC X VALUE SPACE.
method-id InstanceMethod.
local-storage section.
66 P-BC-NPG-RATE RENAMES P-BRCLGROUP THRU P-ERATE.
procedure division.
MOVE SPACES TO P-BC-NPG-RATE
if P-BC-NPG-RATE = spaces
display "ok"
else
display "no"
end-if
goback.
end method.
end class.
In a nutshell, can someone explain to this dinosaur what is going on in memory?