If you're running Windows then I'd suggest either Microsoft Visual C++ Express or MingGW and a text editor of your choice. From recent experience of teaching a couple of newbies Visual C++ was a bit of a cognitive load at the same time as learning C++ - you have to deal with some non-C++ bits that you have no idea about at first. MinGW is a bit simpler to get started with - the cognitive load is still there but spread slightly differently.
If you're running on Linux or something like FreeBSD then install g++ and use that.
At the very beginning I would recommend you to go with notepad + gcc. This would be very useful in order to understand the compilation model (how c/cpp/h files work) and linking. This is very useful/necessary knowledge that you need even when you are using an IDE with a larger project to help you in development. If you later switch to an IDE then on windows Visual Studio is by far the best. If you are using a better version than the free Visual Studio Express edition then you can use plugins/addons like VisualAssistX and Productivity PowerTools to make it even better. On MacOSX you can use Xcode. On linux code::blocks, this is a free ide that is crossplatform, available on all other platforms.
Code::Blocks is an excellent tool. Certainly, VS does have a larger feature-set than C::B, though one which provides little utility to many of us. There is precisely 2 features that I value it for.
The API reference (which doesn't come in Express versions) and the debugger, which I concede is second to none that I've used. I commonly create a VS project file simply so I can debug the program I'm working on. Too bad I can't debug Arduino code with VS also.
Other than that, it's slow, is visually unpleasant to me, is a large download, is a massive install (for an ide/compiler) and requires registration. It's also not available unless your platform is MS Windows.
My first compiler/ide/help file system went home on about 5 or 6 1.44MB floppy disks. (Turbo C++ 3.1)
Last time I grabbed VS, it was a 700MB download. Code::Blocks is currently 97MB.
VS Express for desktop apps requires 5GB of diskspace, C::B is under 500MB
Neither VS Express or Code::Blocks comes with a resource-editor. I use ResEdit for C::B, pr I use wxFormBuilder if working with wxWidgets. wxSmith is a bit crappy, imho - though it is integrated with the ide. wxSmith is the only wxWidgets resource editor I've seen that runs on the Raspberry Pi with Raspian as the OS.
Using this poor 4gb i3 win7 laptop of mine, I timed how long it takes to start the program, create a new console c++ project, paste the following snippet, build and run it.
Code::Blocks 12.11 comes in at 52 seconds
Visual Studio 2010 Ultimate comes in at 2 mins 10 seconds
Though much of this time is in starting the program and parsing all of the include files.
Taking a larger project and allowing it to load first before hitting build - my pdf generator in this instance.
C::B build time: 14s
VS build time: 16s
VS debugger: 1st-class, 10 star rating
Code::Blocks debugger: de-what?
Each has its advantages, one should choose the application that best suits one's needs.
"Science adjusts its views based on what's observed. Faith is the denial of observation, so that belief can be preserved." - Tim Minchin
when PC starts up , smss.exe will create new session
-service session (wininit.exe...)
-User session (winlogon.exe ...)
Now i want to create a new session inside MyService.exe .
Can you share with me document or ebook ?
I have a need to create a C++ non-dotnet DLL that will be called and used by a VB.net application. I am trying to determine the type of DLL to create. The DLL will contain some classes, variables, and functions that I will be writing. I understand that there are three types of a DLL that can be created: 1) Regular DLL - Statically Linked to MFC, 2) Regular DLL - Dynamically Linked to MFC, and 3) DLL that uses the Standard Windows Libraries, non-MFC.
My question is, which would be the best to use, one that is linked to the MFC, or one that uses the standard windows libraries? Can someone make a suggestion and explain the differences between MFC and the standard libraries?
In a C++/CLI DLL you can decide on class level whether you want to make it an unmanaged class (wich I think you mean with truly compiled) or a managed (.Net) class. You could create the business logic in unmanaged classes and provide a managed interface/wrapper for the VB.Net classes to call directly.
The good thing about pessimism is, that you are always either right or pleasently surprised.
cout<<"cout is executed"<<endl;
printf("printf executed \n");
//OutPut:printf is executed
// cout is executed
//Why printf is getting executed first??it output should be reverse right??
This is most probably a result of buffering of the output streams. I would bet that depending on the scenario/platform/compiler you could get different results with this very same code. Don't write such code or flush the streams if you want to guarantee write order.
If you're using a standard C++ compiler then the cout should happen first. However as you're not using a standard compiler (cout and printf are members of the std namespace for a standard compiler) then all bets are off. Get a new compiler and see if you have the same problem.