|
And where is the C++ code? I see only Java in your post. Also, which compiler are you using and what optimizations?
|
|
|
|
|
You can write bad code in C++ and you can write bad code in Java. When you try to compare them you can deliberately show the advantages of either one over the other, but only for that example. It can give you a false sense of what each language is capable of. It is "a little knowledge is a dangerous thing" type problem.
Seriously, if you are going to try to compare apples and oranges, understand what the strengths and weaknesses are. A good compiler can save you from some of your errors, but only so far.
how about 0.75 seconds for C++. If I turn on full analysis, as mentioned above, I get 0 seconds. Intel can figure out the loop never uses the variable entries and removes it as useless code. A print of the values of k and j at the end will keep the code. Oh... I forgot, that is on my slowest computer....
That is the point of understanding how the language and compiler/framework work together. If you only know the "syntax" of any language, you only know half of what you are doing.
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Thats because java has an internal piece of code that gets inserted secretly that resembles this...
for (int i = 0; i < 1000000000; i++)
// ***************************
// Java specific internal code
if ((bInVeryBigLoop==true) && (bCodeServesNoObviousPurpose==true)) {
// User must be running a benchmark against c++
break;
}
// End java specific internal code
// *******************************
int j = 5;
j++;
j *= 2;
j /= 2;
j--;
double k = 5.0;
k++;
k *= 2;
k /= 2;
k--;
}
|
|
|
|
|
This comes scaringly close to reality...
Though I speak with the tongues of men and of angels, and have not money, I am become as a sounding brass, or a tinkling cymbal. George Orwell, "Keep the Aspidistra Flying", Opening words
|
|
|
|
|
This is driving me mad.
I just started to get error C2664 for things I have been doing for years!
I have a Edit Box with a control variable m_cRange and a string used for formating data for these Edit boxes for display.
e.g.
CString g_szDisplayStr;<br />
CEdit m_cRange;<br />
double Range;<br />
Both these statements produce the C2664 error.
<br />
g_szDisplayStr.Format("%0.4f", Range);<br />
m_cRange.SetWindowText(g_szDisplayStr);
Have I screwed up by project settings; its MFC C++ Dialog application.
Andy.
|
|
|
|
|
C2664 mentions two types. What are they? Is this a Unicode application?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
The complier option Use UNICODE Response Files is Yes; but still get the error when set to No.
This line of code
g_szDisplayStr.Format("%8.4f", WGS84Latitude);
Gives the error below:-
Error 2 error C2664: 'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [6]' to 'const wchar_t *' c:\model\model\modeldlg.cpp 546
|
|
|
|
|
Andy202 wrote: This line of code
g_szDisplayStr.Format("%8.4f", WGS84Latitude);
Gives the error below:-
Because it should be:
g_szDisplayStr.Format(_T("%8.4f"), WGS84Latitude);
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
OK David thanks you.
But next stupid question, my previous program worked OK.
Has new system files for thw environment been dowloaded?
|
|
|
|
|
With VS6, ANSI is the default. With VS200x, Unicode is the default.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanks again David.
Just one final question.
When ever I create a control variable, it takes about 4 minutes. I think all PCs on the network are being accessed. I cannot find a setting to limit this activity.
Many thanks,
Andy.
|
|
|
|
|
Andy202 wrote: When ever I create a control variable, it takes about 4 minutes.
Within the IDE?
Andy202 wrote: When ever I create a control variable...I think all PCs on the network are being accessed.
I'm not aware of any correlation between the two. Does unplugging the network cable have an effect?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Yes, works OK with the cable unplugged.
and it is within the IDE.
|
|
|
|
|
I am using MM_TEXT mode during Ondraw(CDC *pDC) function & displayed a rectangle but during printing i am using MM_TWIPS mapmode now i want to use CoOrdinate used during Ondraw.I tried to convert Co-ordnate into correct pixels. Here is code:
// during On draw
pDC->MoveTo(p1);
pDC->LineTo(p2);
pDC->LineTo(p3);
pDC->LineTo(p4);
pDC->LineTo(p1);
// some macro
#define CalibPoint(p, HorPix,VerPix) CPoint(CALIBX(p.x,HorPix),CALIBY(p.y,VerPix))
#define CALIBX(point,HPIX) (point * HPIX )/PIXPERINCH
#define CALIBY(point,VPIX) (point * VPIX )/PIXPERINCH
#define PIXPERINCH 72
int nHorz = pDC->GetDeviceCaps(LOGPIXELSX);
int nVert = pDC->GetDeviceCaps(LOGPIXELSY);
//during printing
p1=CalibPoint(p1, nHorz,nVert);//CalibPoint is Macro
p2=CalibPoint(p2, nHorz,nVert);
p3=CalibPoint(p3, nHorz,nVert);
p4=CalibPoint(p4, nHorz,nVert);
pDC->MoveTo(p1.x,-p1.y);
pDC->LineTo(p2.x,-p2.y);
pDC->LineTo(p3.x,-p3.y);
pDC->LineTo(p4.x,-p4.y);
pDC->LineTo(p1.x,-p1.y);
Thanks & regards
priyank Dwivedi
priyank
|
|
|
|
|
Whats the difference between
Use Mfc in Static Library and
Use Mfc in Shared Dll.
what is achieved after specifing either of thses two?
Thanks in advance....
|
|
|
|
|
The shared dll option will use the existing mfc dlls on the machine on which execution is going on. If you don't have the dlls it wont' execute.
The static library option will attach the code of mfc dlls in you executable so you will not need the dlls.
But the drawback of static linking is that the overall size of executable will be increased.
|
|
|
|
|
While the static library name may be hard to understand, the "shared dll" bit should be easier!
An EXE is the program you're running. It can also use DLLs, which other EXEs can use - hence shared DLLs. If you're struggling with that idea, then this is not the right forum for you.
In this case, your program will reference the MFC DLL(s). This could be MFC42U.dll for example. But this may or may not be on a system, so you'd need to put it there - and what if a bad person overwrites it? And is it will contain every MFC class and code, it will be quite large.
The alternative is to link all the MFC functions into your EXE. It will now be larger than before, but more selfcontained. And not as large as the EXE and DLL were before.
Which you use is heaviliy dependent on other conditions. Ease of install, whether the DLLs already exist on the system (which is a given with older versions of MFC). Will this be downloaded over a slow internet connection? etc.
There is no black or white, good or bad answer. Welcome to programming - land of compromises and cost-benefit analysis.
Iain.
|
|
|
|
|
i would use shared DLL usually but the main problem which i faced as an AMATUER programmer was tht my program wont run on my friend system! so static DLL helped me out! though the size of the exe incresed to few MBytes but atleast i got STANDALONE application
|
|
|
|
|
How to convert double value to float value.
please look at the following code
double dDoubleValue = 200.55000000.
float fFloatValue = (float)dDoubleValue;
output will be 200.54999999, but i need exact value 200.55000000.
|
|
|
|
|
Sakthi_Vel wrote: but i need exact value 200.55000000
floating point numbers are never exact.
|
|
|
|
|
You can use FLT_EPSILON.
For more information visit here[^]
|
|
|
|
|
round it when you are showing the value.
Russell
|
|
|
|
|
As by drawing with a "big" point :P ??
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
Here[^] you will need a very BIG point!
Russell
|
|
|
|
|
What Every Computer Scientist Should Know About Floating-Point Arithmetic[^].
See also this post[^] of mine about rounding in SQL Server.
If you need an exact decimal, perhaps for currency values, use a scaled integer. These are harder to find in C++, there's no standard implementation as far as I know, but basically treating an integer as if it were in cents rather than dollars, or pence rather than pounds, generally works pretty well.
|
|
|
|