Joke Collection Website - Cold jokes - Can you learn Visual C++ now?
Can you learn Visual C++ now?
The original intention of writing this article is not to lead everyone to experience the ancient history of C++. If you want to know the history of C++ and the evolution of many technologies in the early development, you can refer to Bjarne's Design and Evolution of C++. Of course, I don't intend to give you an all-encompassing collection (not that I don't want to: first, because of the limited level, and second, because of the profoundness of C++), but just some development and learning resources that we think are the most important and within reach for readers who want to learn C++.
This paper introduces and analyzes some compilers, development environments, libraries, a small number of books and reference websites, and tries to give a guide to the use of these resources, hoping to benefit beginners like us.
compilers
Compilers have never received such attention in other languages except C++. Because C++ is a rather complicated language, it is difficult to build a compiler. Only recently have we been able to use compilers that fully meet the C++ standard (oh, you may blame those compiler manufacturers for not providing compilers that meet the standard as soon as possible, which can only be blamed on their own set of standards that others are unwilling to accept). What? You said it's okay? Oh, no, what you need is a compilation environment that is highly compatible with standardized C++. In the long run, only such a compiler is the most meaningful tool for C++ developers, especially for learners of programming languages. Unity makes code portable and makes a language and its libraries more widely used. Well, yes, I only intend to introduce some recognized excellent compilers here.
Borland C++
This is the background compiler of Borland C++ Builder and Borland C++Builder X. Oh, you should understand why I divided it into two development environments, just like the transformation from Delphi7 to Delphi8, which is a revolution of two generations. ) Borland C++ was built by Borland, a veteran development tool manufacturer. The company's compiler is famous for its high speed and high space efficiency. Borland C++ series compilers inherit this tradition and belong to very high quality compilers. As far as standardization is concerned, the compatibility with standardized C++ reached 92.73% as early as 5.5 compiler. At present, the latest version is version 6.0 in Borland C++ Builder X, and the official 100% conforms to ANSI/ISO c++ standards and C99 standards. Hmm ... This is exactly what I mentioned before, a compiler that is completely compliant with the C++ standard.
Visual C++
This is the C++ compiler that we are familiar with in Visual Studio and Visual Studio.net Whidbey in 2002, 2003 and 2005. Developed by Microsoft Corporation. In Visual Studio 6.0, the compiler was criticized because there were too many places that could not meet the later C++ standards (think of those disgusting mistakes and warnings when you compiled with STL). The compatibility between VC++6.0 and standardized C++ is only 83.43%. However, with the participation of Stanley Lippman, a great designer of C++ compiler, and many experts from C++ community, Visual C++ compiler has become a very mature and reliable C++ compiler in Visual Studio.NET 2003. The evaluation of doctor's journal Dobb shows that the compatibility of Visual C++7. 1 with standard C++ is as high as 98.22%, which was once the most compatible compiler before CBX. Combined with the powerful visual Studio.NET development environment, this is a very good choice. As for Visual C++ in Whidbey era, it seems that Microsoft is most concerned about C++/CLI ... We don't want to comment on how Microsoft's next-generation C++ compiler is compatible with standardization, but it is more and more suitable. NET (in fact, you and I may feel the same way. Microsoft should not throw the fat meat of standard c++ to Borland, but Microsoft may not think so).
/post/ 1/7 18
Because delphi and c++builder are products of InEnterprise, * * * enjoys the integrated development interface (ide), and
Use the same vcl framework (this is the most critical point), and they are developed and supported by the debugger and pvcs/teamsource team.
, database engine and other advanced functions of enterprise edition integration are the same, so this paper compares them with c++build.
Er belongs to the same front. I met some delphi programmers on the Internet. They thought that c++builder and vc were close.
This is a misunderstanding. In fact, delphi and c++builder are almost the same except for their different languages. for
In order to avoid the topic shifting to the comparison between c++ language and object pascal language (the language used by delphi), the following are mainly
Comparative analysis of visual c++ and c++builder.
First, compare them from the application framework (sometimes called the object framework).
Relatively speaking. The framework adopted by visual c++ is mfc. Mfc is not just a class library that people usually understand. (and, del.
The concept of vcl used by phi and c++builder is not just a control library. If you choose mfc, you can also choose MFC.
Choose a program structure, a programming style. Mfc appeared as early as the windows 3.x era, when visu.
Al c++ is still in the position of 16. After years of continuous supplement and improvement, mfc has become very mature. But because of the prototype.
Compared with vcl, mfc lags behind an era. Although Microsoft has not stopped updating mfc, I still watch it often.
To hold "as long as windows is out of date, mfc will not be out of date" and so on, but just like InEnterprise (formerly borl
And) owl framework fades out, mfc fades out sooner or later. If mfc is always young, the developer of Microsoft
Members will not "privately" develop wtl based on atl. Of course, wtl's position can't be compared with mfc, not micro.
Soft officially supported framework, the function of encapsulation is also quite limited. But at least it also reflects the shortcomings of mfc.
I think the most advanced application framework is its delegation mode, which is to eliminate windows.
The encapsulation mechanism of information. (Needless to say, the encapsulation of windows api. Much the same, and there is no technical content.
If you are happy, you can also write a class library to encapsulate it. But the encapsulation of windows message-driven mechanism is not the case.
It is not easy. The most natural way of encapsulation is to use virtual member functions. If you want to respond to the message, please overload the corresponding.
Virtual function. But to my surprise, mfc adopts an "old" macro definition method. The advantages of using macro definition method are
The system overhead of virtual function vtable is saved. (Because there are many kinds of messages in windows, the overhead is not small. ) However,
The disadvantage is that the mapping is not intuitive. Fortunately, the new version of classwizard of vc can automatically generate message mappings.
Code, which is relatively convenient to use. However, compared with the delegation model of vcl, the mapping method of mfc is too backward.
We'll talk about it later. C++builder extends the c++ language and introduces new features such as components, event handling and attributes.
Because Kung Fu is compiler-level, the generated source code is very concise. However, due to the nonstandard nature of extension,
The source code of c++builder using vcl cannot be compiled by other compilers. And mfc's kung fu is at the source code level, although
However, the message mapping code is complex and not intuitive, but it is very compatible. As long as you have the source code of mfc library (using vc enterprise)
Theoretically, your mfc program can be compiled by any compiler conforming to ansi standards. c+
Versions above +builder 3 can directly compile visual c++ programs intact, which many people think is c++build.
The good compatibility of er is actually attributed to the good compatibility of mfc. Microsoft has tried to write m in a standard way.
Fc, but it has created convenience for opponents. I wonder how they feel. Because c++builder extends the language, vc
Unable to compile the program of c++builder. It seems that vc will lose to c++builder in this respect. And vcl supported groups.
Components, attributes, etc. Are all features that mfc lacks. Although vc can also support components, it needs to be integrated through Mr. appwizard.
The "wrapper" class is not as concise as vcl. Many people use c++builder just for the dashboard.
From that pile of components, vc can use many components (probably not less than c++builder), but because it doesn't.
Convenient and unattractive to rad programmers.
Another feature that vcl of c++builder is more advanced than mfc of visual c++ is exception handling. But this is ridiculous.
The mistake is that its exception handling code has bugs, and sometimes it throws exceptions for no reason. I wonder if it's the latest version.
It has been corrected. And mfc, the framework of vc, is not without its merits. After so many years of development and improvement, mfc has many functions.
Usually comprehensive, and very stable, with almost no bugs. Among them, you may encounter fewer bugs. And there are third-party professionals.
Help you avoid these bugs. It is not easy for a class library of this size to do this. Don't underestimate this.
Many professional programmers choose vc for this purpose. There are relatively many VCL bug in c++builder, but
Some of its own sample programs have errors. It seems that InEnterprise still has a long way to go.
And then compare them in terms of usability. Vc has a series of tools such as classwizard, sourcebrowser, etc., and it also comes with.
With powerful tools such as visual sourcesafe and visual modeler, it is very easy to use. (vc comes with a modeler.
Having visual modeler may indicate that it is an engineering-level development platform, which is different from the positioning of c++builder.
) msdn, the "developer encyclopedia" it brings, makes you "have nothing you can't find, only something you can't think of".
Moreover, its auto-completion and other small functions are more considerate than c++builder. Although the new version of c++builder also
This function is provided, but its prompt takes several seconds to come out. Sometimes you will inadvertently stop the mouse somewhere.
You have to wait for the hard disk to ring for a few seconds, but this is on Celeron ii at 566mhz. Don't laugh at me for being obscene, sometimes a developer.
The maturity and ease of use of furniture are reflected from these small places. As a rad tool, c++builder should emphasize ease of use.
Availability. But compared with vc, it is still immature. This shouldn't be.
Let's look at their portability. InEnterprise is developing linux versions of c++builder and delphi.
Code-named kylix. Perhaps through kylix, windows programs written in vcl framework can be transplanted to linux. but
It's the only possibility. Because at present, the compatibility of InEnterprise is not ready. C++builder can compile vc programs.
Because of Microsoft's standard method of writing mfc, its own version is not compatible. A lower version of c language.
++builder can't use a higher version of vcl components (not to mention), nor can a higher version of c++builder.
Use earlier vcl components. That's ridiculous. I rarely see software that is not backward compatible. If windows
98 can't run 95 programs, windows 95 can't run 3.x programs, and win 3.x can't run dos programs. you
Can I still use windows? If some other aspects of c++builder are not excellent, it is only this downward incompatibility.
Enough for me to abandon it. Although c++builder can compile delphi object passing through a bundled compiler.
Cal code, but c++builder still can't use vcl components developed for delphi. So a component is already d1/d.
2/d3/d4/d5/c 1/c3/c4/c5 is common. With the upgrade of c++builder, you can
The energy will increase. I hope InEnterprise can solve the compatibility problem of brothers first. Microsoft's vc does not have these problems.
. The mfc 1.0 program can also be compiled and passed without obstacles under vc6.0.
Let's take a look at their prospects. In fact, the progress of technology has changed in many cases. Bo is at the beginning
Turbo c and borland c++ of rland are almost the only choices. Microsoft's quick c (someone else knows this.
Product? ) and Microsoft c/c++ have never been the mainstream. But how many years has borland c++ been popular?
? It was quickly overwhelmed by the newly rising Microsoft visual c/c++. Now c++builder has a backward position.
The situation in the world, if the stability is improved and there are fewer bugs, will hopefully become the mainstream. But the whole enterprise
It is an indisputable fact that the strength is not as good as that of Microsoft. Known issues from the release notes of c++builder 5.
The size and quality of S parts and their help documents can be seen. (Which similar product's help document can compare with?
What about msdn ratio? ) inprise should learn from netscape, and don't let c++builder become the second netsca.
Pe communicator. (Communicator used to be a leader in technology and even occupied most of the browser market.
Field, but it seems that the stamina is insufficient. There are many bugs in 6.0 pr 1 and 2, and now I am overwhelmed by ie. )c++ build
Der is one of the flagship products of InEnterprise, and its prospect should be promising, and InEnterprise has been importing linux.
In March, and Microsoft has been slow to move, is it necessary to start a prairie fire on linux (maybe it has already started a prairie fire)
) will rise to occupy this emerging market? It seems that their attitude towards linux is the same as their reaction to the rise of the Internet a few years ago.
It's a little slow. However, .................., alas, I really hope InEnterprise will not follow the footsteps of Netscape. C++builder is
A promising development tool. Unfortunately, the founder of Delphi, an internal company, has jumped ship to Microsoft.
Hold a visual j++ project. I hope it won't have much impact on InEnterprise. What is the prospect of Microsoft's visual c++?
? Visual studio 7.0 will be released soon. I don't know whether we can keep stable and advanced technology at the same time.
Catch up with c++builder. In addition, this version will strengthen the characteristics of network development. It seems that although Microsoft was sentenced to disintegration,
The development strength is not compromised at all.
As far as technology (mainly application framework) is concerned, c++builder is currently ahead of visual c++. But more or less
It is not easy for me to love you. And vc, although it has developed very well today,
But the mfc framework is a thing of the past. If mfc is not used, there is no suitable substitute at present. Wfc is a supporting component.
, properties and events, but that is used in visual j++; Atl is also very advanced, but it is used for com/activ.
Developed by ex; Wtl based on atl is also good, but it belongs to unofficial works and may not be more advanced than vcl. Microsoft recently proposed
C# (pronounced c sharp) language scheme is introduced, but it belongs to the same class as java. It seems that gold is not enough. according to
Make a choice according to your own needs. In fact, visual c++ and c++builder are not only competitive. They are in many
These fields do not overlap or even complement each other. How to choose depends on the characteristics of your project. If you develop
The things at the bottom of the system need excellent compatibility and stability, so visual c++ is chosen. You can call window.
Various APIs, no mfc. If you write a traditional windows desktop application, the mfc framework of visual c++ is
The "orthodox" choice. If you develop high-level applications such as databases and information management systems for enterprises ("high-level" is relative
By "low-level/low-level", we don't mean advanced or low-level technology. ) and the deadline is very tight, choose C++B+B.
Uilder is better. If your language is object pascal, delphi is the only choice (if gnu pasc
Al and other free compilers do not consider). If you used to use delphi(object pascal), now you want to change it.
C++, you should use c++builder first. Familiar interface and the same framework will make your transition more effective.
In addition, although mfc lags behind, it does not mean that it is not worth learning. In fact, not learning mfc means not learning vc.
. Using mfc framework to develop programs is still the mainstream mode of developing desktop applications at present, and it will remain for a long time.
Between. Even if you don't use mfc framework, you should take the time to learn the encapsulation mechanism of mfc and be familiar with the oop mechanism of c++.
The underlying functions of windows are also very beneficial.
C/c++ (whether mfc or bcb), as one of the criteria for programmer rating, will
Will give way to three programming languages, 1.sun's Java 2. C#3.xml on Windows platform.
Why do you say that? I think the biggest reason is that the current application is moving from an independent operating system to.
Based on the Internet platform.
The applications we developed in the past all rely on platform function calls, such as MFC and BCB, which are becoming more and more popular now.
The last thing Internet programming wants to care about is the calling of a certain platform, such as realizing b2b e-commerce.
You need to integrate different platforms. If I am a programmer, I am most concerned about how to realize business logic.
What we need most urgently is not the communication and management between various platforms, but a method that can be called without any communication with various platforms.
Language, only pay attention to the design of program logic, does not involve the call of the platform, but the familiar c/c++ is just right.
Not designed for this (hehe can't blame the c/c++ in the 1970s. Who can know what the Internet is like now?
The original design purpose of c/c++ is to design unix to produce a high development level between assembly and high-level language.
High efficiency and high performance language. It cares more about the physical structure of the system than other high-level languages, such as always being destroyed.
A pointer with a good reputation Pointers are very powerful because they involve the management of the system's physical memory. It allows programmers to
It is this translucent state that makes the pointer more unstable.
Make love.
C/c++ has no advantage in Internet-oriented programming, and cross-platform e-commerce software is most concerned.
Various platforms differ greatly in system calls, most afraid of crashing from time to time due to memory leaks. c/c++.
Potential becomes a disadvantage here. Even if the solution based on windows DNA is developed on the windows platform,
The most commonly used dcom is vb, not atl of vc, because c/c++ is efficient but too easy.
Error, if memory is released carelessly, nt will soon run out of resources.
Java was the first to see this situation. He realized platform independence with jvm and stability and robustness with memory recycling. however
Many c/c++ programmers complain that java is too slow. In fact, even for java2, speed is still a big problem. I used to
I am a staunch supporter of c/c++, and I have fought with java programmers in many forums. But I gradually realized that I was facing the challenge of getting in touch with In.
When the ternet platform is not a specific operating system, the speed problem of java is often a small flaw. we can
Imagine which home appliance website will use our pc as a server. They are either sun e 1000 or ibm.
Risc6000。 On this platform, the speed of java is just a piece of cake. Programmers just need to focus on the business.
Service logic programming, and you don't need to care whether the array is out of bounds, whether the object memory is released, or whether it is unix.
It is different from the system call of windows.
Microsoft's c# can be said to be a mixture of java and c/c++, which can recycle memory and is platform independent. however
He can also realize some functions that java doesn't have, such as managing memory by himself with pointers in marked program segments.
Now the operator is overloaded, and so on. Why are you doing this? I think maybe c# is responsible for the development of the operating system.
Like winform. His basic idea is similar to java, but the implementation method is different. He doesn't explain it through jvm.
Intermediate code, but the source code is compiled into P code first and then compiled into 100% version on the platform in time through cls library and jit.
His pe code is platform independent, but cls and jit are designed according to different platforms. Therefore,
The platform independence of c# is somewhat similar to the transplantation of c/c++ on different platforms, which makes c# faster than java. Moreover, Microsoft also
Promise that cls and jit can be used not only in c#, but also in pascal, smaltalk, basic Basic and other languages, so it is possible in the future.
Can all programming languages be platform independent (ms is really poisonous, all languages are platform independent, what else is java?
Advantages: It is said that ms developed asp+ based on pascal smaltalk.
Xml Many people may think that languages like html are completely different from C/C++, Java and C #.
Actually, it's not. We know that both c# and java realize platform independence through unified stratum calculation. That must be.
There is a little cost in performance, but xml can realize calls between different languages. For example, a network occupies jav.
A uses bean to realize a delivery function, and another website uses dcom to realize a warehousing function. If this website needs real.
Now b2b, generally speaking, is to write the conversion program between them, and xml is an excuse to describe them through markup language.
Features. Both ends can call each other by parsing xml text without any intermediate converter.
Only one xml text is needed to realize the communication between bean and dcom (a lot of xml is needed to clarify the mechanism)
Concept If you are interested, you can go to msdn.microsoft.com/xml or www.s3c.org. At present. Ne of ms
Soap, the core technology in T, is a remote procedure call based on xml.
Introducing so much may be a bit off topic. In fact, what I want to say most is that programmers in the 2 1 century should face the operating system.
Get out of the traditional methods, learn some technologies and concepts, and how to program the Internet platform. Don't be fearless.
That kind of c/c++ tool is good and so on. I can't imagine that bcb and mfc will be eliminated in a year or two.
At that time, the debate was not about bcb or mfc, but about c# or java. As for xml, sun and
The technology that ms and even any big it company in the world, including intel, hp and HP, are studying hard may be eliminated if they don't learn.
As for c/c++, it may be reduced to assembly now, and it can still be seen in some places that are sensitive to system performance.
If you are a beginner in programming language, I suggest learning java and paying attention to c#. At first, they were simpler than c/c++.
Complex concepts, such as macros, pointers, templates, etc. Confusing, and they are completely object-oriented and immature than c/c++
Object-oriented is much clearer and easier to learn (It is recommended to learn java at present. After all, c# has not been released yet, and bet has just been released.
Version a compiler is very demanding and needs win2000 adv server. If you don't have 128m memory, you can't run it. Anyway, c#
It's exactly the same as java, and there's not much difference. Learn java well, and the future c# will be at your fingertips. )
For programmers under windows now, the value of learning mfc is still a little, but it will not be too great. at least
Familiar with the internal mechanism of windows. But I still suggest focusing on c#. The future of windows.net is based on c# instead of.
It's mfc Moreover, it is much easier for c# to implement the same windows desktop application than mfc. The development speed of c# is twice that of mfc.
Triple it and see almost no performance loss. Vc in visual studio 7.0 will be a secondary development tool.
The main development tools are c# and vb7.0. As for borland, I think it's impossible not to follow ms, at least windows is flat.
It's like this on the stage. Maybe next year borland's main product will be a c# builder instead of C+c++ build.
Der。 Tell a joke, wenny may turn this place into www.c#help.net soon.
- Previous article:What is the stem of the moon with the stars shining?
- Next article:Old carp joke 2
- Related articles
- Cao Yunjin joked.
- How to answer humorously whether there is an object?
- I have a good friend. When she was a child, she was very introverted and her family was not very good. Parents often quarrel, and relatives always reject and dislike her. She is only 4 years old.
- How to write your own experience after reading the job interview of senior and senior?
- Legend of the Sword and the Chivalrous Man 3 Poison Man
- The worst female writer in the Republic of China was injured by her mother-in-law and sent back by her father. Why was love rat single until she was 94?
- Drink too much and grab the bill.
- If you want to make money, learn how to make money
- Beautiful joke
- A movie is about several astronauts who witnessed the destruction of the earth in outer space and then returned to the moment of the accident through a time machine, saving the earth.