|
Sarvan AL wrote: (1)what are are all different kind of C++'s (Turbo C++, Microsoft C++, Borland C++, ANSI C++... with proprietor name) are there in the industry?
you first confuse some things. Microsoft and Borland C++ are products, while Turbo C++ and Ansi C++ are Languages. there are plenty of IDEs and/or compilers+linkers that build C++ (one of the most famous is the GCC compiler).
Sarvan AL wrote: (2) How they differ ?
each have specifics, but they should all compile standard C+++ the same way (they should, but they actually don't - unfortunately).
Sarvan AL wrote: (3) Which one is used more ?
dunno. maybe gcc on unix/linux world, maybe Visual C++ on windows world (but i cannot certify at all my thoughts).
Sarvan AL wrote: (4) Which among them are free?
GCC is free, Visual Studio 2005 express edition is free, and certainly others are free too
Sarvan AL wrote: (5) For freewares, how to get the updated libraries ?
sorry, i don't understand.
TOXCCT >>> GEII power
[VisualCalc 3.0 updated ][Flags Beginner's Guide new! ]
|
|
|
|
|
Thank you "toxcct".
As you said, I was really confused with products and languages.
In my 5th question, what I mean is: How a language enhances itself to adapt the new technologies? Hope it is sufficient to download the latest versions.
Hope I am clear now.
What do you mean by "Standard C++". Still I am not getting the things. Kindly help me to understand clearly.
Sarvan AL
|
|
|
|
|
well, i believe that each compiler editor professional enough do provide updates to their product when they make changes. microsoft is well known for its "service Packs"...
but as far as the standard remains the same, you do not have to change your code
TOXCCT >>> GEII power
[VisualCalc 3.0 updated ][Flags Beginner's Guide new! ]
|
|
|
|
|
Thanks a lot toxcct.
Sarvan AL
|
|
|
|
|
|
Sarvan AL wrote: What do you mean by "Standard C++".
It's what most C++ compiler vendors strive for, although they usually fall short of that for one reason or another. See here.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"We will be known forever by the tracks we leave." - Native American Proverb
|
|
|
|
|
toxcct wrote: Turbo C++
Turbo C++ is a product of Borland, which accepts pre-ISO C++ (C++90) and ANSI C (C89) languages, and produces 16-bit DOS programs.
Maxwell Chen
|
|
|
|
|
1- There is only one C++ language, and there are numerous vendor specific variants based on that standard ( Visual C++, Borland C++, G++, Intel C++ compiler... )
2- The differences are usually in the libraries shipped with them, either for UI, or other OS specific functionalities ( MFC for VisualC++, OWL for Borland, ... )
3- Nowadays, I think MS's Visual C++ might the one that is the most used, but not far behind should be G++ ( for linux and other unix like OS)
4- I think, gcc/g++ is the only one free.
5- for gcc/g++ As far as I remember, you only get the basic C/C++ libraries, maybe STL, all other libraries, you should get separatly from the different things you want to do ( UI, ... )
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Hi Maximilien,
Thanks a lot for your great effort.
Sarvan AL
|
|
|
|
|
Sarvan AL wrote: (1)what are are all different kind of C++'s (Turbo C++, Microsoft C++, Borland C++, ANSI C++... with proprietor name) are there in the industry?
A) There is only one thing refered as the programming language, which is named "the C++ programming language".
B) But the language, "C++" per se, keeps evolving thus there are various versions now.
B-1) In 1979 Stroustrup invented the language. But their team named it "C with classes".
B-2) In 1983 someone suggested "C++" which stands for better than C.
B-3) In 1985 Stroustrup published his 1st edition of the book "The C++ Programming Language".
B-4) In 1990 Stroustrup and Ellis published the book "The Annotated C++ Reference Manual", which became the basis of the ANSI C++ (1990) standard.
B-5) In 1991 Stroustrup published the 2nd Edition of the book "The C++ Programming Language".
B-6) In 1997 Stroustrup published the 3rd Edition of the book "The C++ Programming Language", which is the basis of ISO/IEC 14882:1997 (The C++ Standard).
B-7) ISO/IEC 14882:1997 was ratified on Nov 14, 1997.
B-8) In 2000 Stroustrup published the 3rd special edition of the book "The C++ Programming Language".
B-9) ISO/IEC 14882:2003 was ratified in Dec 2002. This is the latest language standard.
C) All the other names for example: Microsoft C++, Microsoft Visual C++, Borland C++, Borland C++ Builder, Borland Turbo C++, Intel C++, GCC (GNU Compiler Collections), ... are products or software applications, in other meaning: they are the development tools, the compilers and linkers.
Sarvan AL wrote: (3) Which one is used more ?
Currently, Microsoft Visual C++ and GCC are used more. But actually you can't say so. Each development tool has its own capability. When I have to code 16-bit programs, I need to pick up some old tool like Microsoft Visual C++ 1.5.
Sarvan AL wrote: (4) Which among them are free?
It is well known that GCC is free.
Microsoft Visual Studio 2005 Express has been free recently.
Sarvan AL wrote: (5) For freewares, how to get the updated libraries ?
Taking GCC for example, download the latest version from GCC website or Cygwin website.
Maxwell Chen
|
|
|
|
|
Hi Maxwell,
Thanks a lot for your detailed explanation.
Sarvan AL
|
|
|
|
|
I have a VC6 app (no manifest resource) which has a window with several children; The main part of the window is covered by a scrolling edit window (but with only a vertical scrollbar). The SB is 'blue' with etched horizontal lines, and is (presumably) done by the edit control non-client stuff as normal (it's a regular edit control).
I want to put several windows underneath the edit control, such as tab selection stuff (think Excel workbook), and a horizontal scrollbar under around half the window (again, think Excel).
However, when I create the scrollbar, it appears as a 'standard grey/gray' boring old scrollbar (not like the one in the edit window).
Is there a relatively simple way I can make it render in a more modern style? I'm presuming themes here, but being a retro kind of guy (hey, I have clients who still run Windows 95 and 98 ) I haven't done anything with them yet; any pointers, hints or samples welcomed.
Incidentally, does anyone have a link to the 'ThemeExplorer' sample mentioned in MSDN Oct 2001, which looks like it might be useful at some point?
(And yes, I am moving to VS2005, slowly. I didn't realise my code was so non-compliant with more recent standards...
Steve S
Developer for hire
|
|
|
|
|
Some times the SetWindowTheme() function may help u
nave
|
|
|
|
|
Um, yes, sometimes it might. I should, however, have checked that my manifest was being correctly compiled into the resources, which, as it turned out, wasn't, because I'd used what I assumed would be a predefined value for the ID, rather than '1'.
Irritatingly, the standard controls I was using (list view/richedit/tree) all had visual styles, so I didn't spot it straight away....
Steve S
Developer for hire
|
|
|
|
|
CString Str1 = "Some STring here";
CString Str2 = "Some thing here too";
if (Str1 == Str2)
{
}
Any problem using this comparison??? than using its member function to compare???
|
|
|
|
|
No, it works because the operators are overloaded. But be carefull it is a case-sensitive comparison.
For more details, see the MSDN[^]
|
|
|
|
|
On using the if(Str1==Str2)
You are comparing the pointers to character arrays.
That is you are comparing the memory addresses and not the string objects with overloaded comparison operators
Vision is Always important and so is your ATTITUDE.
Wishes.
Anshuman Dandekar
-- modified at 7:03 Friday 5th May, 2006
|
|
|
|
|
_AnShUmAn_ wrote: You are comparing the pointers to character arrays.
no. these objects are CString s, which class overload the operator==.
the code actually does :
if (Str1.operator==(Str2)) ...
but this doesn't work with C-Style strings
TOXCCT >>> GEII power
[VisualCalc 3.0 updated ][Flags Beginner's Guide new! ]
|
|
|
|
|
_AnShUmAn_ wrote: You are comparing the pointers to character arrays
Wrong, Str1 and Str2 are CString, not char*. CString class has an overloaded == operator which is equal to the Compare member function.
|
|
|
|
|
|
What actully compared..?? see the flow of calling sequence of functions
int Compare( PCXSTR psz ) const throw()
{
ATLASSERT( AtlIsValidString( psz ) );
return( StringTraits::StringCompare( GetString(), psz ) );
}
//for MBCS
static int __cdecl StringCompare( LPCSTR pszA, LPCSTR pszB ) throw()
{
return _mbscmp( reinterpret_cast< const unsigned char* >( pszA ), reinterpret_cast< const unsigned char* >( pszB ) );
}
//for Unicode
static int __cdecl StringCompare( LPCWSTR pszA, LPCWSTR pszB ) throw()
{
return wcscmp( pszA, pszB );
}
So finally what is the result..??
"const char *" are compared..
Knock out 'T' from CAN'T
You 'CAN' if you think you 'CAN'
|
|
|
|
|
No, no and no
Look at the code he provided !! We are talking about CString classes! Those classes have an overloaded == operator (geez, I think it will be the sentence I wrote the most today ) thus this code is perfectly legal.
And, in what you posted:
static int __cdecl StringCompare( LPCWSTR pszA, LPCWSTR pszB ) throw()
{
return wcscmp( pszA, pszB );
}
You think that this is equal to
return (pszA == pszB);
The content of the wcscmp function compare the contents of the pointers ! So there is a huge difference.
Did you understood the question in the first part ?
-- modified at 8:32 Friday 5th May, 2006
|
|
|
|
|
|
*be patient, everything will be fine soooon*
|
|
|
|
|
What i want to say that, The core functionality behind the == comparison
I aggred with Cedric Moonen that "The content of the wcscmp function compare the contents of the pointers"
The wcscmp function compares pszA and pszB lexicographically and returns a value indicating their relationship
Knock out 'T' from CAN'T
You 'CAN' if you think you 'CAN'
|
|
|
|
|