Re: Static variable in dialog box proc
Vincent Fatica wrote:
On Tue, 29 Jul 2008 16:33:35 -0400, Victor Bazarov <v.Abazarov@comAcast.net>
wrote:
It happens even with this dlgproc:
INT_PTR CALLBACK BoxProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static BOOL b = FALSE;
if ( b ) return TRUE;
return FALSE;
}
Without the "if" statement, the dialog box is drawn correctly (as specified in
my resource).
With the "if" statement, it's grotesque looking.
Can you see what the assembly code for that function looks like?
Unfortunately, that poses a steep learning curve. My app is a DLL, a plugin for
a 3rd party command processor (I write extensions to the command processor, the
user can invoke "commands" I supply, my functions are called with a string of
user-supplied args so they appear as built-in commands). In addition, I rarely
make debug builds and I stink at using a debugger. :-(
What are you talking about? Compile your function with /Fa (IIRC, check
the manual), and you get the assembly as output. Find the function and
post its contents here.
I would also check the preprocessor output (/E if memory serves), to see
what your 'FALSE' and 'TRUE' and 'BOOL' get converted to. It's quite
possible that if you are using some third-party stuff, they redefine
those macros. Worse yet, if they redefine 'if' or 'b' or 'return'. Not
completely impossible, mind you.
I would also replace
if ( b )
with
if ( b == FALSE )
..
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask