|
From: June Lee on 1 Apr 2008 20:50 is it true that Standard C++ Library is pretty much include functions similar to the following java packages??? java.io java.lang java.util http://msdn2.microsoft.com/en-us/library/ct1as7hw(VS.80).aspx It seem to me the Standard C++ Library have headers to mainipulate string / characters, doing I/O, and data structure like Stack, Queue, HashMap, Vector, time, bitwise operation, exception, iterator on a collection ... etc which pretty similar to above "very core" java package
From: June Lee on 1 Apr 2008 21:16 So there are 3 types of library / header in C++? CRT (C runtime library) Standard C++ Library Platform SDK for Visual C++ where CRT is low level code like doing all the bit and bytes where Platform SDK is high level code doing all those Web Service, Security, Message Queue, UI / GUI, COM, HTTP / networking stuff? any other must have / used alot kind of library for C++ that programmer use alot besides the above 3 library?
From: Nathan Mates on 1 Apr 2008 22:13 In article <pin5v3dcv2n72i59v8ldhphlg4i44ju7k5(a)4ax.com>, June Lee <iiuu66(a)yahoo.com> wrote: >So there are 3 types of library / header in C++? Why does it matter to you? C/C++ is not Java. Trying to map things will be inexact at best. Use of pretty much any library beyond the C Runtime is *optional*. The classic 'Hello, World' uses only that. Every other library is completely up to the user. Code running on Windows will tend to use the Platform SDK. But, think about it -- C++ can be used on a Mac, no? Or unix, no? The "platform SDK" is quite different, and usually called something else there. C/C++ deliberately put very little in the core C Runtime. C++'s Standard Template Libraries also has huge areas it doesn't cover -- things like graphics, sound, networking, and a *LOT* more. Multiple libraries exist to fill in those gaps. Many of those libraries overlap in functionality and features. It's a choice which one(s) to use, it's not part of the language . Nathan Mates -- <*> Nathan Mates - personal webpage http://www.visi.com/~nathan/ # Programmer at Pandemic Studios -- http://www.pandemicstudios.com/ # NOT speaking for Pandemic Studios. "Care not what the neighbors # think. What are the facts, and to how many decimal places?" -R.A. Heinlein
From: Joseph M. Newcomer on 2 Apr 2008 00:17 So what do java.io, java.lang, and java.util implement? I haven't looked a Java in at least five years! Note that if you are programming in MFC, you should completely ignore the existence of std::string and use the MFC CString class (the functionality is essentially identical, but CString Plays Well With MFC). Bitwise operation is bitwise operation in any language, unless you want bit arrays longer than 64 bits, in which case you can ideally implement everything you need it about ten minutes. As to comparing any of the collection manipulation in C++ to Java, you'd have to ask a Java expert. joe On Tue, 01 Apr 2008 17:50:06 -0700, June Lee <iiuu66(a)yahoo.com> wrote: >is it true that Standard C++ Library is pretty much include functions >similar to the following java packages??? > >java.io >java.lang >java.util > >http://msdn2.microsoft.com/en-us/library/ct1as7hw(VS.80).aspx > >It seem to me the Standard C++ Library have headers to mainipulate >string / characters, doing I/O, and data structure like Stack, Queue, >HashMap, Vector, time, bitwise operation, exception, iterator on a >collection ... etc > >which pretty similar to above "very core" java package Joseph M. Newcomer [MVP] email: newcomer(a)flounder.com Web: http://www.flounder.com MVP Tips: http://www.flounder.com/mvp_tips.htm
From: Joseph M. Newcomer on 2 Apr 2008 00:51 There is precisely one type of header in C++: the header file. What goes in a header file is up to the implementor of the header file. C++ header files have more powerful syntax than pure C header files because C++ is a more powerful language. But the underlying mechanism is the same, and any C header file is implicitly a C++ header file. The CRT consists of a set of header files that name the functions of the C Runtime Library. The Standard C++ Library consists of a set of header files that name the classes and methods of the Standard C++ Library The Platform SDK has nothing to do with C++, and is just a set of header files that name C functions which are part of the Platform SDK. The Microsoft Foundation Class libraries consist of a set of header files that name the classes and methods of MFC, a library system certain kinds of applications (primarily GUI-based applications) written in C++ The Active Template Libraries (ATL) consist of a set of header files that name the classes and methods of ATL, a library system largely intended to develop controls written in C++. The DirectX Libraries consist of a set of header files that name the classes and methods of DirectX, which allows high-performance access to concepts like graphics, 3D rendering, game input devices, sound input, and sound output, among other capabilities. The GDI+ Libraries consist of a set of header files that name the classes and methods of GDI+, an enhanced version of GDI. The WinSock Libraries are a set of header files that give you access to the low-level WinSock interface (you probably want to use a high-level socket library like CAsyncSocket in MFC) The WinINet libraries are a set of header files that give you access to the high-level network protocols, such as HTTP transfers, SSL, and things like that. The Microsoft Message Queue Libraries give you access to the Microsoft Message Queue mechanisms (which have nothing to do with, say, queuing Window messages, or queuing messages to I/O Completion Ports, or queueing messages to sockets, or use the C++ Standard Library queue objects) ISAPI is a set of libraries that allow you to construct Web Services. It has (thankfully) been supplanted by .NET Web Services libraries. There's a set of .NET libraries that allow you to write .NET code (such as Web services) in C++, using extended syntax of the Microsoft C++ compiler, but that's yet a different set of libraries. At this point, I've covered perhaps half the libraries. I didn't go into the assorted ways of getting at SQL databases, for example, or a ton of other things that are supported. Also, charactertizing the Platform SDK as being "high level" is problematic; for example, MFC provides much higher-level interfaces for many concepts that the Platform SDK is merely low-level support for. The Joe Newcomer Libraries consist of the set of header files that name classes and functions I wrote. The June Lee Libraries consist of the set of header files that name classes and functions you wrote. Note that there is NOTHING SPECIAL ABOUT ANY OF THESE HEADER FILES. For convenience, we label them as groups of concepts, so we can talk about them, but they are just a bunch of header files the compiller reads. It doesn't care. All you need to care about is (a) what do I want to do and (b) which of the many options is the best choice to do it. Generally, for most programming, the C++ Standard Library is an important set of header files to know about. For GUI programming (at least in this newsgroup), the MFC header files are important to know about. For control development, the ATL header files are important to know about. For serious graphics, you probably want to know about either GDI+ or Direct3D. If you want to get close to the operating system, you often need to know a lot of the Platform SDK support. And so on. (By the way, the last I looked, there was nothing BUT low-level support for security; there is no high-level concepts of security that I've seen recently) For example, I could not program effectively without my set of libraries. I have several hundred thousand lines of C++/MFC code I wrote (some of which is on my Web site), and they are as essential to me as MFC or the CRT. Note that most of the Standard C++ Library files at some point include CRT libraries. Go read any one of them, and you'll almost certainly find #includes of CRT libraries. Most MFC libraries include the CRT headers. My libraries #include the MFC libraries. So trying to draw arbitrary boundaries is not a particularly productive exercise. And thinking there are only 3 kinds of headers is not a good approach to even analyzing the fundamental problem. The fundamental problem is that any large environment has hundreds of header files you need a passing acquaintance with. This is impossible, so you pick and choose your targets based on opportunity. I once knew a subset of C# quite well, for example, but haven't used it in a couple years. Trying to lump everything into a couple overly-simplistic categories will only lead to confusion and frustration. Pick a task and learn the subset you need to accomplish that task. Then choose a slightly larger scope of task and extend the subset you know. You might take a look at the C#/MFC conversion chart I made, and if you are a Java programmer, you will probably want to think of developing a Java/C++/MFC chart of your own to help you. See my MVP Tips site. joe On Tue, 01 Apr 2008 18:16:17 -0700, June Lee <iiuu66(a)yahoo.com> wrote: >So there are 3 types of library / header in C++? > >CRT (C runtime library) >Standard C++ Library >Platform SDK for Visual C++ > >where CRT is low level code like doing all the bit and bytes >where Platform SDK is high level code doing all those Web Service, >Security, Message Queue, UI / GUI, COM, HTTP / networking stuff? > >any other must have / used alot kind of library for C++ that >programmer use alot besides the above 3 library? Joseph M. Newcomer [MVP] email: newcomer(a)flounder.com Web: http://www.flounder.com MVP Tips: http://www.flounder.com/mvp_tips.htm Author of "Win32 Programming" (with Brent Rector, Addison-Wesley, 1997) Author of "Developing Windows NT Device Drivers" (with Ed Dekker, AWL, 1999)
|
Next
|
Last
Pages: 1 2 3 Prev: pass parameter between main thread and working thread Next: CRT (C Runtime Library) |