|
I was also using i++. Recently changed to ++i...
Thank you.
- NS -
|
|
|
|
|
I'd reiterate the earlier comment that you should BE VERY CAREFUL mixing ++i and i++. It's very easy to skip index 0 in situations where you pre-increment.. only to cause bugs that are sometimes subtle -- especially when dealing with interating through arrays of data.
Read more of what I have to say at http://directx9.blogspot.com/
|
|
|
|
|
|
from the VC assembly dump.
10: for(i=0;i<5; i++)
00401028 mov dword ptr [ebp-4],0
0040102F jmp main+2Ah (0040103a)
00401031 mov eax,dword ptr [ebp-4]
00401034 add eax,1
00401037 mov dword ptr [ebp-4],eax
0040103A cmp dword ptr [ebp-4],5
0040103E jge main+3Fh (0040104f)
11: printf("Hello World!\n");
00401040 push offset string "Hello World!\n" (0042001c)
00401045 call printf (004010b0)
0040104A add esp,4
0040104D jmp main+21h (00401031)
12:
13: for(i=0;i<5; ++i)
0040104F mov dword ptr [ebp-4],0
00401056 jmp main+51h (00401061)
00401058 mov ecx,dword ptr [ebp-4]
0040105B add ecx,1
0040105E mov dword ptr [ebp-4],ecx
00401061 cmp dword ptr [ebp-4],5
00401065 jge main+66h (00401076)
14: printf("Hello World!\n");
00401067 push offset string "Hello World!\n" (0042001c)
0040106C call printf (004010b0)
00401071 add esp,4
00401074 jmp main+48h (00401058)
so clearly the code for both cases is the same.
so no difference if you use the incrementor statements (pre or post) that are independent.
<hr<span style="color:gray;size:15px;">-Prakash
-Prakash
|
|
|
|
|
Its amazing...
I thought that post increment will cause a temporary instance for keeping the value, and then it will increment.
Thank you for revealing a great mistake.
- NS -
|
|
|
|
|
As far as i know it will not effect the
integer type but
if u are using an c++ object during the
increment it will effect preformance
Vikas Amin
Embin Technology
Bombay
vikas.amin@embin.com
|
|
|
|
|
Now i foudnd something that can prove
++i is better then i++.
this is in the case ur passing a argument
to a function in my case the fun name is
add. So ++i i better as it donot create any
temp variable to store . As the value is
need to be incremented first . But in the
late case the value have to be incremented
afterwards so a temp variable is needed..
Assmebly code to prove my words
U r wrong the case is vice versa
Tough to Belive
Assembly code to prove my observations
<br />
507: Add(++i);<br />
004010CE mov eax,dword ptr [ebp-4]<br />
004010D1 add eax,1<br />
004010D4 mov dword ptr [ebp-4],eax<br />
004010D7 mov ecx,dword ptr [ebp-4]<br />
004010DA push ecx<br />
004010DB call @ILT+15(Add) (00401014)<br />
004010E0 add esp,4<br />
508: Add(i+1);<br />
004010E3 mov edx,dword ptr [ebp-4]<br />
004010E6 add edx,1<br />
004010E9 push edx<br />
004010EA call @ILT+15(Add) (00401014)<br />
004010EF add esp,4<br />
506: Add(1+i);<br />
004010CE mov eax,dword ptr [ebp-4]<br />
004010D1 add eax,1<br />
004010D4 push eax<br />
004010D5 call @ILT+15(Add) (00401014)<br />
004010DA add esp,4<br />
507: Add(i++);<br />
004010DD mov ecx,dword ptr [ebp-4]<br />
004010E0 mov dword ptr [ebp-5Ch],ecx<br />
004010E3 mov edx,dword ptr [ebp-5Ch]<br />
004010E6 push edx<br />
004010E7 mov eax,dword ptr [ebp-4]<br />
004010EA add eax,1<br />
004010ED mov dword ptr [ebp-4],eax<br />
004010F0 call @ILT+15(Add) (00401014)<br />
004010F5 add esp,4
I dont know but how i+1 is more effecient to
pass then i++ or ++i
Vikas Amin
Embin Technology
Bombay
vikas.amin@embin.com
|
|
|
|
|
Can anyone please giv me the simple code for building modeless dialog box in win 32 application.
Thanks and regards,
pooja
|
|
|
|
|
A good but simple example from Nishant Sivakumar...
http://www.codeproject.com/dialog/gettingmodeless.asp[^]
Apart from this a small example is given here...
CDialog dialog;
dialog.Create(IDD_YOUR_DIALOG_TEMPLATE, this);
dialog.ShowWindow(SW_SHOW);
Jesus Loves You and Me <marquee direction="up" height="50" scrolldelay="1" step="1" scrollamount="1" style="background-color:'#44ccff'">
--Owner Drawn
--Nothing special
--Defeat is temporary but surrender is permanent
--Never say quits
--Jesus is Lord
|
|
|
|
|
use DialogBox api in win32 or create a dummy win32 application and see how the about dialog box is launched.
<hr<span style="color:gray;size:15px;">-Prakash
-Prakash
|
|
|
|
|
How can I know if there is a Floppy disk in the Floppy drive?
Jesus Loves You and Me <marquee direction="up" height="50" scrolldelay="1" step="1" scrollamount="1" style="background-color:'#44ccff'">
--Owner Drawn
--Nothing special
--Defeat is temporary but surrender is permanent
--Never say quits
--Jesus is Lord
|
|
|
|
|
|
He he, At last...
Thanks, Buddy...
God Bless You.
Jesus Loves You and Me <marquee direction="up" height="50" scrolldelay="1" step="1" scrollamount="1" style="background-color:'#44ccff'">
--Owner Drawn
--Nothing special
--Defeat is temporary but surrender is permanent
--Never say quits
--Jesus is Lord
|
|
|
|
|
But there is nothing about floppy drive...
Jesus Loves You and Me <marquee direction="up" height="50" scrolldelay="1" step="1" scrollamount="1" style="background-color:'#44ccff'">
--Owner Drawn
--Nothing special
--Defeat is temporary but surrender is permanent
--Never say quits
--Jesus is Lord
|
|
|
|
|
Do you already know the drive letter of the floppy drive?
If so, then try GetVolumeInformation
And heed this warning:
When a user attempts to get information about a floppy drive that does not have a floppy disk, or a CD-ROM drive that does not have a compact disc, the system displays a message box for the user to insert a floppy disk or a compact disc, respectively. To prevent the system from displaying this message box, call the SetErrorMode function with SEM_FAILCRITICALERRORS.
Marriage slows down your coding, a baby slows it down even more!
|
|
|
|
|
What is the difference between using __try/__except and try/catch? Can one be used in place of the other, anytime? Are there cases that are handled better by only one of them?
thanks!
|
|
|
|
|
AFAIK, try/catch is the Standard C++ way of exception handling. It's guaranteed to work in all platforms. __try/__except is a Windows specific extension for Structured Exception Handling (SEH). It is typically used to catch problems like access violation, stack overflow etc. which are outside the bounds of standard C++.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
In Microsoft C++,
identifiers with two leading underscores are reserved for compiler implementations. Therefore, the Microsoft convention is to precede Microsoft-specific keywords with double underscores. These words cannot be used as identifier names.
for ur code to be portable ensuur that u replace
the microsoft specific keywords
Vikas Amin
Embin Technology
Bombay
vikas.amin@embin.com
|
|
|
|
|
Hi.
Can anyone tell me how to upload an indexed palette image into opengl to use as a texture?
Thanks in advance.
|
|
|
|
|
Hi,
I am working with Visual Studio .NET 2003 and everything worked fine until...
I added a new dialog and tried to create a new CDialog class to attach to it by either double clicking on the dialog frame or right click and "Add Class".
When I fill in the class name and base class and hit OK, nothing happens and the new class is not created anywhere. I don't see any error messages as well.
I tried multiple names, but nothing works.
I can do it manually but this takes longer to do...
Thanks in advance,
Shay
|
|
|
|
|
I've just done this and successfully added the dialogue box and a class (by right clicking on it and using the context menu) so I don't think it's a bug.
Which version of Visual Studio .NET 2003 are you using? I'm using 7.1.3088 (Click Help=>About Microsoft Visual C++ 2003).
|
|
|
|
|
got the same version.
I was able to add dialog classes but from some reason I can't do it anymore on this project (other projects are good).
The "bug" is that I see no error message and the new class is not created...
Shay
|
|
|
|
|
Problems of this type usually signal that one or more of the temporary files that Visual Studio creates has been corrupted.
Exit Visual Studio. Look in the folder containing your project file project.vcproj . Delete any files named project.ncb or project.aps . This is safe to do, since Visual Studio will re-create them as needed.
Software Zen: delete this; // <a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" rel="nofollow">Fold With Us!</a>[<a href="http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx" target="_blank" rel="nofollow" title="New Window">^</a>]
|
|
|
|
|
I already did the work manually but thanks a lot for the info.
This had happen more than once so next time I will try this trick.
shay
|
|
|
|
|
OK, I have been developing an interface for editing records in our database.
I want to set it up as a control that I can use in other applications I
build. I am using databinding to tie the fields to my controls, such as
labels and textboxes.
I can create a solution for a stand alone application that runs like I want,
but whenever I create a solution for a control, then none of my data shows
up. I have tried making C++ controls (the language I am familiar with) and
VB and even C#. I get the same result: The interface compiles and displays
as designed, but no data.
When I add the control to the toolbox, I get the control plus a dataset and
adapter, but no databinding control.
|
|
|
|