|
I have few modeless dialogs in a specific time and i want
that the dialog that the user click on her will be above all the dialogs - how can i do that???
Thank
|
|
|
|
|
I think WM_LBUTTONDOWN or WM_ACTIVATE will help you
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Try SetForegroundWindow and SetActiveWindow
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Here the SIMPLE project demo to illustrate the strange bug I noticed just some minutes ago. http://digilander.iol.it/ilbanca/fuffa/Bug.zip
Compile in Debug mode and press the button.
Compile in Release and press the button.
It beheaves in different ways (bad in Release)
The function that made me crazy:
[code]
void Buggy( char* result )
{
char s1[6];
char s2[5];
strcpy(s1,"abcde");
strcpy(s2,"BUG!");
// DOESNT WORK
strcpy(result,"anystring");
strcat(result,s1);
// THIS WAY WORKS
// strcpy(result,s1);
}
[/code]
In Debug mode works
In Release mode not
Setting 'Optimizations' to "Default" instead of "Maximixe Speed" solve the problem, but why?
I want to append 's1' to 'result', and it appends 's2' ((((((((
Bye.
|
|
|
|
|
What is 'result', coming in ? Has it been created, or just declared ?
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
void Buggy( char* result )
in the function declaration, where Buggy stores the result of the appending action.
|
|
|
|
|
Yes, but do you say char * pResult; , or do you say char * pResult = new char [255]; , for example ?
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
As Christian suggests the definition of 'result' is most likely where the problem lie.
Debug builds initialize the stack, heap etc. whereas release builds don't, which is one of the reasons they behave differently.
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
Ok.
But this is an initialization:
strcpy(result,"anystring");
Then:
strcat(result,s1);
should append 's1' to 'result', instead it appends the other string 's2' to 'result'...
it has to do with Opt/MazimixeSpeed, that in Debug build is Disabled, but for a such simple task I don't figure out why causes this strange effect...
|
|
|
|
|
Yes, new char[255], is a string, vector of chars. I use Buggy() this way:
void CBugDlg::OnButton1()
{
char* test = new char[255];
Buggy(test);
m_sTest = test;
delete [] test;
UpdateData(FALSE);
}
or
void CBugDlg::OnButton1()
{
char test[255];
Buggy(test);
m_sTest = test;
UpdateData(FALSE);
}
The bug vanishes if I turn Optimizations\MaximixeSpeed to Optimizations\Default. But this still sucks... I must know why
|
|
|
|
|
There is your problem - m_sText = test means both variables point to the same allocated data, which delete [] test will delete. You should also always set deleted pointers to NULL.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
Sorry, I did not specify, but m_sTest is a CString object (DDX for a CEDit), so it copies 'test' and there should be no problems about it.
|
|
|
|
|
are you allocating memory for result???
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Yes... try the test project if you can, try Debug and Release, pressing the button: it gives no errors, but two different outputs
http://digilander.iol.it/ilbanca/fuffa/Bug.zip
|
|
|
|
|
I am puzzled.
It worked fine.
Both in release and in debug
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Grrr.... I'm running WinXP, what your OS ?
|
|
|
|
|
Frankesk wrote:
Grrr.... I'm running WinXP, what your OS ?
I ran it on XP [both debug and release] without any problems at all.
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Your code works fine for me as well in both Debug and Release builds on WinXP Pro. That is I "anystringabcde"
Have you tried rebooting Windows? If all else fails...
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
This is a very strange problem...
rebooted, underclocked the processor, I have no idea... it still gives me different results:
In Debug "anystringabcde"
In Release "anystringBUG!"
When Optimizations is MazimizeSpeed(default setting)
Thanks for your time
|
|
|
|
|
Have you tried stepping through it in the debugger and seeing where 'result' screws up. You can still debug release builds by including debug info. I think there is an article by Mr. Newcomer here on CP about this.
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
I have found the article, thanks! Very interesting http://www.codeproject.com/debug/survivereleasever.asp)
But life is hard: I have turned on debugging information for Release and the compiler gives me this error asa I press F5:
"Command line error D2016 : '/ZI' and '/O2' command-line options are incompatible"
/O2 is the parameter for the Optimization->MazimixeSpeed, and if I turn it OFF the bug doesn't appear, so debugging is useless in this case! Nice...
Maybe I have to reinstall, I don't know
|
|
|
|
|
You can still debug but you'll need to be able to work through the Assembler code. If you started with Assembler like I did this isn't too difficult.
Another option is to use: OutputDebugString()
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
Debugging assembler is a dying skill.
Thank god I learned it years and years ago. I use that skill all the time.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
Tim Smith wrote:
Debugging assembler is a dying skill.
Thank god I learned it years and years ago. I use that skill all the time.
Yes I couldn't agree more. My guess is that these days most programmers wouldn't have a clue about Assembler.
I started programming in Signetics 2650 Assembler with 8K RAM, and spent a number of years writing Z80/8080 Assembler. In fact the very first versions of my programmers editor (ED) were writtem in 2650 Assembler. It sure has come an awefully long way to what you see today. Thank god for C/C++, but having said that I still dip in to the Assembler listings from time to time while debugging.
I would also take a punt and say many developers today don't use a Debugger enough.
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
I learned on the 8080/85, Z80, and 6809 processors.
Ah, the good old days.
My first C compiler was ECO-C. This was back in the days when a C compiler generated ASM code which you then sent into the assembler.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|