I'm working to a program in MASM32 and I get this error during assemle process: nesting level too deep. I think this is because my "WndProc" processes about 50 menu commands and there are lots of .IF and .ELSEIF macros in my procedure.If anyone can help me out to resolve this problem pls answer. For more details, my code looks like this:
....
.ELSEIF uMsg == WM_COMMAND
LOWORD wParam ; get the low word of wParam in eax
.IF eax == ID_FNEW ;ID_FNEW = 1010
.IF ....; there are about 50 ".IF eax == Command "here
; with different commands that's why I think
;I get the error: nesting level too deep
.ENDIF
.ENDIF
.....
....
.ELSEIF uMsg == WM_COMMAND
LOWORD wParam ; get the low word of wParam in eax
.IF eax == ID_FNEW ;ID_FNEW = 1010
.IF ....; there are about 50 ".IF eax == Command "here
; with different commands that's why I think
;I get the error: nesting level too deep
.ENDIF
.ENDIF
.....
Try the or-cmp-jump instructions(je, jz, jae, jbe, jnz...) combo, you'll never go wrong with this one...
or eax, eax
jz @@EAXisZero
cmp eax, 4
je @@EAXisEqualToFour
...
That worked fine thanks a lot.