<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7203764545426358194</id><updated>2024-09-05T07:27:15.510+05:30</updated><category term="Visual C++ Projects and Files"/><category term="Introduction to the Microsoft Foundation Class Library"/><category term="The Microsoft Foundation Class Library"/><category term="Introduction to Windows Resources"/><category term="Programs"/><category term="How"/><category term="Introduction"/><category term="Static Library"/><category term="Visual C++ Tips"/><title type='text'>Advanced Visual C++</title><subtitle type='html'>Advanced Microsoft Visual C++ Programming Tutorials, Guide Lines, Examples and more...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-2715801697210023890</id><published>2012-09-27T21:13:00.000+05:30</published><updated>2012-09-27T21:13:06.286+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="How"/><category scheme="http://www.blogger.com/atom/ns#" term="Static Library"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++ Tips"/><title type='text'>How to create a new static library project in Visual C++</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;ul&gt;
&lt;li&gt;From the File menu, select New and then Project….&lt;/li&gt;
&lt;li&gt;From the Project types pane, under Visual C++, select Win32.&lt;/li&gt;
&lt;li&gt;From the Templates pane, select Win32 Console Application.&lt;/li&gt;
&lt;li&gt;Choose a name for the project, such as MathFuncsLib, and enter it in the Name field. Choose a name for the solution, such as StaticLibrary, and enter it in the Solution Name field.&lt;/li&gt;
&lt;li&gt;Press OK to start the Win32 application wizard. From the Overview page of the Win32 Application Wizard dialog, press Next.&lt;/li&gt;
&lt;li&gt;From the Application Settings page of the Win32 Application Wizard, under Application type, select Static library.&lt;/li&gt;
&lt;li&gt;From the Application Settings page of the Win32 Application Wizard, under Additional options, deselect Pre-compiled header.&lt;/li&gt;
&lt;li&gt;Press Finish to create the project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/2715801697210023890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2012/09/how-to-create-new-static-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/2715801697210023890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/2715801697210023890'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2012/09/how-to-create-new-static-library.html' title='How to create a new static library project in Visual C++'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-7359783330655127940</id><published>2011-06-09T15:23:00.000+05:30</published><updated>2011-06-09T15:23:53.860+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programs"/><title type='text'>Decomposing makes everything easier...</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Time for us to start writing computer games! This first one will be a bit simple, but it&#39;s a start. Our task is to write a program that implements a guessing game. Our program generates a random number between 0 and 100. The player must guess the secret number. The program provides hints like &quot;that&#39;s too high&quot; or &quot;that&#39;s too low&quot; until the player finally guesses the secret number. &lt;br /&gt;
We will work on this game in three steps.&amp;nbsp; &lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Figure out how to generate a random number within a given range of values. &lt;/li&gt;
&lt;li&gt;Create a main function that processes one guess from the player, and provides hints. &lt;/li&gt;
&lt;li&gt;Add what we need to allow for multiple guesses until the player guesses the number. &lt;/li&gt;
&lt;/ol&gt;This process of development is called&amp;nbsp;decomposition, which means breaking a task into sub-tasks, each of which is easy to do. Starting with step 1, do a Google search to see how to generate a random number using C++. Try searching on &quot;rand C++&quot;.&lt;br /&gt;
&lt;br /&gt;
// random.cpp.&amp;nbsp; Maggie Johnson&lt;br /&gt;
// Description: Illustrates how to generate a random number in Visual C++&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main () {&lt;br /&gt;
&amp;nbsp; int random_number;&lt;br /&gt;
&amp;nbsp; // Initialize random seed.&lt;br /&gt;
&amp;nbsp; srand (time(NULL));&lt;br /&gt;
&amp;nbsp; // Generate random number between 1 and 100&lt;br /&gt;
&amp;nbsp; random_number = rand() % 100 + 1;&lt;br /&gt;
&amp;nbsp; cout &amp;lt;&amp;lt; &quot;Your random number:&quot; &amp;lt;&amp;lt; random_number &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp; system(&quot;pause&quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
For step 2, we need to receive an integer input from the player (with appropriate error-checking on cin), and check it against the secret number. Try and write this part of the game yourself before checking&amp;nbsp;our solution&lt;a href=&quot;http://code.google.com/edu/languages/cpp/basics/view.php?id=103&quot;&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;// guess.cpp.  Maggie Johnson
// Description: A guessing game where the player guesses
// the secret number.

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;time.h&amp;gt;
using namespace std;

int main () {
  int random_number, guess;

  // Initialize random seed.
  srand (time(NULL));

  // Generate random number between 1 and 100
  random_number = rand() % 100 + 1;

  cout &amp;lt;&amp;lt; &quot;Guess our number (1 to 100) &quot;;
  if (!(cin &amp;gt;&amp;gt; guess)) {
    cout &amp;lt;&amp;lt; &quot;Please enter only numbers&quot; &amp;lt;&amp;lt; endl;
  } else {
    if (random_number &amp;lt; guess) cout &amp;lt;&amp;lt; &quot;The secret number is lower than &quot; &amp;lt;&amp;lt; guess &amp;lt;&amp;lt; endl;
    else if (random_number &amp;gt; guess) cout &amp;lt;&amp;lt; &quot;The secret number is higher than&quot; &amp;lt;&amp;lt; guess &amp;lt;&amp;lt; endl;
    else cout &amp;lt;&amp;lt; &quot;You guessed it: &quot; &amp;lt;&amp;lt; random_number &amp;lt;&amp;lt; endl;
  }
  cout &amp;lt;&amp;lt; &quot;random: &quot; &amp;lt;&amp;lt; random_number &amp;lt;&amp;lt; endl;
  return 0;
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we need to add a loop that keeps collecting guesses from the player until they finally guess the secret number. After completing this part of the program, you can check&amp;nbsp;our solution&lt;a href=&quot;http://code.google.com/edu/languages/cpp/basics/view.php?id=104&quot;&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;// guess.cpp.  Maggie Johnson
// Description: A guessing game where the player guesses
// the secret number.

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;time.h&amp;gt;
#include &amp;lt;cstdlib.h&amp;gt;
using namespace std;

int main () {
  int random_number, guess;

  // Initialize random seed.
  srand (time(NULL));

  // Generate random number between 1 and 100
  random_number = rand() % 100 + 1;

  cout &amp;lt;&amp;lt; &quot;Guess our number (1 to 100) &quot;;
  do {
    if (!(cin &amp;gt;&amp;gt; guess)) {
      cout &amp;lt;&amp;lt; &quot;Please enter only numbers&quot; &amp;lt;&amp;lt; endl;
    } else {
      if (random_number &amp;lt; guess) cout &amp;lt;&amp;lt; &quot;The secret number is lower than &quot; &amp;lt;&amp;lt; guess &amp;lt;&amp;lt; endl;
      else if (random_number &amp;gt; guess) cout &amp;lt;&amp;lt; &quot;The secret number is higher than &quot; &amp;lt;&amp;lt; guess &amp;lt;&amp;lt; endl;
    }
  } while (random_number != guess);
  cout &amp;lt;&amp;lt; &quot;Congratulations!&quot; &amp;lt;&amp;lt;  endl;
  return 0;
}
&lt;/pre&gt;&lt;br /&gt;
Decomposition is one of the most important skills for a programmer to learn. Being able to break a task down into manageable pieces, and then complete one at a time is critical, no matter how big or how small the project. Here are some other opportunities for you to practice decomposition. &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Many everyday tasks provide opportunities to build skills in decomposition. It might surprise you to discover that your mind just works this way! For example, if I have to clean up a really messy kitchen (perhaps some little girls just baked a cake), I break the tasks down to provide a plan, and to make sure I don&#39;t have to re-do work later. I don&#39;t want to wash the floor first if there&#39;s all kinds of stuff on the counters to clean up - I&#39;ll probably have to do the floor again later. So, maybe I put all the ingredients away first; move all the dishes into the sink; clean off the counters; wash the dishes; and finally, clean up the floor. There are other ways to perform this task, but by thinking it through first, it helps me define a plan that will not require re-work.&lt;br /&gt;
Use everyday tasks as examples for developing your decomposition skills. Who knows - it might even make you more efficient around the house!&lt;/li&gt;
&lt;li&gt;The&amp;nbsp;&lt;b&gt;greatest common divisor&lt;/b&gt;&amp;nbsp;of two integers is the largest number that divides them both evenly. For example, gcd(12, 18) = 6, gcd(−4, 14) = 2. The most efficient way to compute gcd is with the Euclidean algorithm. Write a program with a function to compute gcd for two integers. Try doing the function without recursion first - it will help you understand how the algorithm works. Explicitly define your sub-tasks, for example, find the code for the Euclidean algorithm; create a non-recursive function for the algorithm; etc.&amp;nbsp;Here&lt;a href=&quot;http://code.google.com/edu/languages/cpp/basics/view.php?id=105&quot;&gt;&lt;/a&gt;&amp;nbsp;is our solution.&lt;/li&gt;
&lt;/ul&gt;&lt;pre&gt;// gcd.cpp, Maggie Johnson
// Description: An implementation of Euclid&#39;s algorithm for computing gcd.
// Fundamental idea of Euclid&#39;s algorithm (one of the oldest known algorithms)
// for finding the greatest common divisor of two integers:
// gcd(a, 0) = a
// gcd(a, b) = gcd(b, a % b)  // % means modulo, that is, the remainder of a/b.
// For example, gcd(6, 4) = 2; gcd(12, 18) = 6.

#include &amp;lt;iostream&amp;gt;
using namespace std;

// A non-recursive version of Euclid&#39;s algorithm
int gcd (int a, int b) {
  int temp;
  while (b != 0) {
    temp = a % b;
    a = b;
    b = temp;
  }
  return(a);
}

int main () {
  int x, y;
  cout &amp;lt;&amp;lt; &quot;Enter two integers: &quot;;
  if (!(cin &amp;gt;&amp;gt; x &amp;gt;&amp;gt; y)) {
    cout &amp;lt;&amp;lt; &quot;Please enter only integers&quot; &amp;lt;&amp;lt; endl;
  } else {
    cout &amp;lt;&amp;lt; &quot;gcd(&quot; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &quot;, &quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; &quot;) = &quot; &amp;lt;&amp;lt; gcd(x,y) &amp;lt;&amp;lt; endl;
  }
  return(0);
}
&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/7359783330655127940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/decomposing-makes-everything-easier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/7359783330655127940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/7359783330655127940'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/decomposing-makes-everything-easier.html' title='Decomposing makes everything easier...'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-8548129770904545401</id><published>2011-06-09T15:12:00.000+05:30</published><updated>2011-06-09T15:12:36.465+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programs"/><title type='text'>Get some input</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;// get_input.cpp: Maggie Johnson&lt;br /&gt;
// Description: Illustrate the use of cin to get input.&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; int input_var = 0;&lt;br /&gt;
// Enter the do while loop and stay there until either&lt;br /&gt;
// a non-numeric is entered, or -1 is entered. Note that&lt;br /&gt;
// cin will accept any integer, 4, 40, 400, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; do&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; &quot;Enter a number (-1 = quit): &quot;;&lt;br /&gt;
// The following line accepts input from the keyboard into&lt;br /&gt;
// variable input_var.&lt;br /&gt;
// cin returns false if an input operation fails, that is, if&lt;br /&gt;
// something other than an int (the type of input_var) is entered.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!(cin &amp;gt;&amp;gt; input_var)) &lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; &quot;Please enter numbers only!&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; cin.clear();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; cin.ignore(10000,&#39;\n&#39;);&lt;br /&gt;
&amp;nbsp;//&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (input_var != -1) &lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; &quot;You entered &quot; &amp;lt;&amp;lt; input_var &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp; } while (input_var != -1);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; cout &amp;lt;&amp;lt; &quot;All done.&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp; system(&quot;pause&quot;);&lt;br /&gt;
&amp;nbsp; return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
An experiment:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;When an input error is made, the stream &quot;breaks,&quot; cin returns false, and the program stops. It&#39;s very important to guard against such errors as we did in the program above. But what if we want to recover from the error, rather than have the program stop? There are two steps to recovering from an error: &lt;ol&gt;&lt;li&gt;Clear the error with cin.clear(). &lt;/li&gt;
&lt;li&gt;Remove the incorrect characters from the stream. One way to do this is with cin.ignore(). &lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/8548129770904545401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/get-some-input.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/8548129770904545401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/8548129770904545401'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/get-some-input.html' title='Get some input'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-6891949801400849473</id><published>2011-06-09T15:10:00.000+05:30</published><updated>2011-06-09T15:10:16.034+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programs"/><title type='text'>Hello World</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;One of the best ways to learn how to program in a new language is by looking at lots and lots of example programs. The best thing to do is to copy and paste each program below into a text file and compile it. Then, try the experiments. By extending these example programs, you will gain familiarity with different aspects fo C++, and you will feel more confident when it comes time to write programs from scratch.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;// hello.cpp: Maggie Johnson
// Description: a program that prints the immortal saying &quot;hello world&quot;

#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
 cout &amp;lt;&amp;lt; &quot;Hello World!&quot; &amp;lt;&amp;lt; endl;
 return 0;
}
&lt;/pre&gt;Some experiments to try:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The most important thing is to make sure you can compile and run this program. &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/6891949801400849473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/hello-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/6891949801400849473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/6891949801400849473'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/hello-world.html' title='Hello World'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-6445856169448995446</id><published>2011-06-01T16:54:00.002+05:30</published><updated>2011-06-01T16:54:26.972+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction to Windows Resources"/><title type='text'>Converting a Resource Identifier</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;An identifier is a constant integer whose name usually starts with ID. Although in Win32 programming you usually can use the name of a resource as a string, in MFC applications, resources are usually referred to by their identifier. To make an identifier name (considered a string) recognizable to an MFC (or Win32) function, you use a macro called &lt;b&gt;MAKEINTRESOURCE&lt;/b&gt;. Its syntax is:&lt;/div&gt;&lt;pre&gt;LPTSTR MAKEINTRESOURCE(WORD IDentifier);&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;This macro takes the identifier of the resource and returns a string that is given to the function that called it. In the strict sense, after creating the resource file, it must be compiled to create a new file that has the extension .res. Fortunately, Microsoft Visual C++ automatically compiles the file and links it to the application.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/6445856169448995446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/converting-resource-identifier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/6445856169448995446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/6445856169448995446'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/converting-resource-identifier.html' title='Converting a Resource Identifier'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-1840519677232182280</id><published>2011-06-01T16:53:00.002+05:30</published><updated>2011-06-01T16:53:54.504+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction to Windows Resources"/><title type='text'>Creating a Resource</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;Although an application can use various resources that behave independently of each other, these resources are grouped into a text file that has the .rc extension. You can create this file manually and fill out all necessary parts but it is advantageous to let Microsoft Visual C++ create it for you. To start creating the resources:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;On the main menu, you can click Project -&amp;gt; Add Resource... &lt;/li&gt;
&lt;li&gt;In the Solution Explorer, you can right-click the name of the project, position the mouse on Add, and click Resource... &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;parajust&quot;&gt;Any of these actions would display the Add Resource dialog box. From this dialog box, you would select the type of resource you want and click New (or Import...). You will then be expected to design or customize the resources. Throughout our lessons, we will see various examples. After creating or designing a resource, you must save it. In most cases, you can try closing the resource. In this case, Microsoft Visual C++ would prompt you to save the resource. If you agree to do this (which you mostly should), Microsoft Visual Studio would create a new file with the extension .rc.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;To make your resource recognizable to the other files of the program, you must also create a header file, usually called &lt;b&gt;resource.h&lt;/b&gt;. This header file must provide a constant integer that identifies each resource and makes it available to any part that needs it. This also means that most, if not all, of your resources will be represented by an identifier.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;Because resources are different entities, they are created one at a time. They can also be imported from existing files.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;The Add Resource dialog box provides an extensive list of resources to accommodate almost any need. Still, if you do not see a resource you need and know you can use it, you can add it manually to the .rc file before executing the program.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ol&gt;&lt;li&gt;If the Resource View is not visible, on the main menu, click View -&amp;gt; Other Windows -&amp;gt; Resource View.&lt;br /&gt;
In the Reource View, right-click Exercise1 -&amp;gt; Add -&amp;gt; Resource... &lt;/li&gt;
&lt;li&gt;In the Add Resource dialog box, click String Table&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Add Resource&quot; border=&quot;0&quot; height=&quot;254px&quot; src=&quot;http://www.functionx.com/visualc/dlgboxes/addres1.gif&quot; width=&quot;366px&quot; /&gt; &lt;/li&gt;
&lt;li&gt;Click New &lt;/li&gt;
&lt;li&gt;Under the Type column header, click IDS_STRING101 and edit it to display &lt;b&gt;IDS_ANNOUNCE&lt;/b&gt; and press Enter &lt;/li&gt;
&lt;li&gt;To save, on the Standard toolbar, click the Save button &lt;/li&gt;
&lt;li&gt;Close that window by clicking the Close button &lt;img alt=&quot;Close&quot; height=&quot;15px&quot; src=&quot;http://www.functionx.com/visualstudio/buttons/close2.gif&quot; width=&quot;16px&quot; /&gt; &lt;/li&gt;
&lt;li&gt;In the Resource View, expand the Exercise1 node et notice the Exercise1.rc node &lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/1840519677232182280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/creating-resource.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1840519677232182280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1840519677232182280'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/creating-resource.html' title='Creating a Resource'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-2043415588491752221</id><published>2011-06-01T16:52:00.002+05:30</published><updated>2011-06-01T16:52:43.294+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction to Windows Resources"/><title type='text'>Overview</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;In an MFC application, a resource is a text file that allows the compiler to manage such objects as pictures, sounds, mouse cursors, dialog boxes, etc. Microsoft Visual C++ makes creating a resource file particularly easy by providing the necessary tools in the same environment used to program. This means you usually do not have to use an external application to create or configure a resource file (as done in other programming environments).&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/2043415588491752221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/2043415588491752221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/2043415588491752221'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/overview.html' title='Overview'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-927774909857970040</id><published>2011-06-01T16:51:00.005+05:30</published><updated>2011-06-01T16:51:57.968+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="The Microsoft Foundation Class Library"/><title type='text'>The Command Line</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;To execute a program, you must communicate its path and possibly some additional parameters to the compiler. This information is called the command line information and it is supplied as a string. You need to keep that in mind although all programs of our lessons will be compiled inside of Visual C++. The command line information is supplied to the compiler as the &lt;i&gt;lpCmdLine&lt;/i&gt; argument of the &lt;b&gt;WinMain()&lt;/b&gt; function. Internally, Visual C++ creates the path and communicates it to the compiler when you execute the program. If you want to find out what command line was used to execute your program, you can call the Win32&#39;s &lt;b&gt;GetCommandLine()&lt;/b&gt; function. Its syntax is:&lt;/div&gt;&lt;pre&gt;LPTSTR GetCommandLine(VOID);&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;This function takes no argument but returns the command line of an application as a null-terminated string.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/927774909857970040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/command-line.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/927774909857970040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/927774909857970040'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/command-line.html' title='The Command Line'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-2076268888968428651</id><published>2011-06-01T16:51:00.002+05:30</published><updated>2011-06-01T16:51:26.455+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="The Microsoft Foundation Class Library"/><title type='text'>A Window&#39;s Instance</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;When you start an application such as Notepad, you are said to have created an instance of the application. In the same way, when you declare a variable of a class, an instance of the class is created and made available to the project. The &lt;b&gt;WinMain()&lt;/b&gt; function also allows you to create an instance of an application, referred to as the &lt;i&gt;hInstance&lt;/i&gt; argument of the &lt;b&gt;WinMain()&lt;/b&gt; function. The instance is created as an &lt;b&gt;HINSTANCE&lt;/b&gt;. The &lt;b&gt;CWinApp&lt;/b&gt; class provides a corresponding instance variable called &lt;i&gt;m_hInstance&lt;/i&gt;. This variable can let you get a handle to the instance of your application. Alternatively, to get a handle to the instance of your application, you can call the &lt;b&gt;AfxGetInstanceHandle()&lt;/b&gt; global function. Its syntax is:&lt;/div&gt;&lt;pre&gt;HINSTANCE AfxGetInstanceHandle();&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;Even more, to get a handle to your application, you can call the Win32 API&#39;s &lt;b&gt;GetWindowLong()&lt;/b&gt; function. Suppose you have opened Notepad to view the source code of an HTML document. This is said that you have an instance of Notepad. Imagine that you want to open a text document using Notepad without closing the first instance of Notepad. To do this, you must open another copy of Notepad. This second copy of Notepad is another instance. In this case, the first instance is referred to as a previous instance. For a Win32 application, the previous instance would be the &lt;i&gt;hPrevInstance&lt;/i&gt; argument of the &lt;b&gt;WinMain()&lt;/b&gt; function. For a Win32 application, the &lt;i&gt;hPrevInstance&lt;/i&gt; argument always has the NULL value. If you want to find out whether a previous instance of an application already exists, you can call the &lt;b&gt;CWnd::FindWindow()&lt;/b&gt; method. Its syntax is: &lt;/div&gt;&lt;pre&gt;static CWnd* PASCAL FindWindow(LPCTSTR lpszClassName, LPCTSTR lpszWindowName);&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;If you created the window or if it is a window you know for sure, in which case it could be a &lt;b&gt;WNDCLASS&lt;/b&gt; or &lt;b&gt;WNDCLASSEX&lt;/b&gt; object, specify it as the &lt;i&gt;lpszClassName&lt;/i&gt; argument. If you do not know its name with certainty, set this argument as NULL. The &lt;i&gt;lpszWindowName&lt;/i&gt; argument is the possible caption of the window you are looking for. Imagine you position a button on a dialog box and you want the user to launch Notepad with that button and imagine that, if Notepad is already opened, there would be no reason to create another instance of it. &lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;The &lt;strong&gt;CWinApp&lt;/strong&gt; class provides all the basic functionality that an application needs. It is equipped with a method called &lt;strong&gt;InitInstance()&lt;/strong&gt;. Its syntax is:&lt;/div&gt;&lt;pre&gt;virtual BOOL InitInstance();&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;When creating an application, you must override this method in your own class. This method is used to create an application. If it succeeds, it returns &lt;b&gt;TRUE&lt;/b&gt; or a non-zero value. If the application could not be created, the method returns &lt;b&gt;FALSE&lt;/b&gt; or 0. Here is an example of implementing it:&lt;/div&gt;&lt;pre&gt;class CSimpleApp : public CWinApp
{
    &lt;span style=&quot;color: red;&quot;&gt;BOOL InitInstance() { return TRUE; }&lt;/span&gt;
};&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;Based on your knowledge of C++, keep in mind that the method could also have been implemented as:&lt;/div&gt;&lt;pre&gt;struct CSimpleApp : public CWinApp
{
    &lt;span style=&quot;color: red;&quot;&gt;BOOL InitInstance()
    {
 return TRUE;
    }&lt;/span&gt;
};&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;or:&lt;/div&gt;&lt;pre&gt;struct CSimpleApp : public CWinApp
{
    &lt;span style=&quot;color: red;&quot;&gt;BOOL InitInstance();&lt;/span&gt;
};

&lt;span style=&quot;color: red;&quot;&gt;BOOL CSimpleApp::InitInstance()
{
    return TRUE;
}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/2076268888968428651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/windows-instance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/2076268888968428651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/2076268888968428651'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/windows-instance.html' title='A Window&#39;s Instance'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-3087384423442716860</id><published>2011-06-01T16:50:00.003+05:30</published><updated>2011-06-01T16:50:47.192+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="The Microsoft Foundation Class Library"/><title type='text'>A Global Application Object</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;To make your application class available and accessible to the objects of your application, you must declare a global variable from it and there must be only one variable of your application. This variable is of the type of the class derived from &lt;b&gt;CWinApp&lt;/b&gt;. Here is an example:&lt;/div&gt;&lt;pre&gt;class CSimpleApp : public CWinApp
{
};

&lt;span style=&quot;color: red;&quot;&gt;CSimpleApp MyApplication;&lt;/span&gt;&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;As you can see, you can name this global variable anything you want. By tradition, in Microsoft Visual C++, this variable is named &lt;b&gt;theApp&lt;/b&gt;. Here is an example:&lt;/div&gt;&lt;pre&gt;CSimpleApp theApp;&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;To get a pointer to this variable from anywhere in your application, call the &lt;b&gt;AfxGetApp()&lt;/b&gt; framework function. Its syntax is: &lt;/div&gt;&lt;pre&gt;CWinApp* AfxGetApp();&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;To implement the role of the Win32&#39;s &lt;b&gt;WinMain()&lt;/b&gt; function, the framework uses its own implementation of this function and the MFC provides it as &lt;b&gt;AfxWinInit()&lt;/b&gt;. It is declared as follows: &lt;/div&gt;&lt;pre&gt;BOOL AFXAPI AfxWinInit(HINSTANCE hInstance,
         HINSTANCE hPrevInstance,
                       LPTSTR lpCmdLine,
         int nCmdShow);&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;As you can see, the Win32&#39;s &lt;b&gt;WinMain()&lt;/b&gt; and the MFC&#39;s &lt;b&gt;AfxWinInit()&lt;/b&gt; functions use the same arguments.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/3087384423442716860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/global-application-object.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/3087384423442716860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/3087384423442716860'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/global-application-object.html' title='A Global Application Object'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-8275062671876039505</id><published>2011-06-01T16:50:00.000+05:30</published><updated>2011-06-01T16:50:13.178+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="The Microsoft Foundation Class Library"/><title type='text'>The Framework</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;Instead of creating an application using &quot;raw&quot; Win32 classes and functions, the MFC library simplifies this process by providing a mechanism called the framework. The framework is a set of classes, functions, and techniques used to create an application as complete as possible with as few lines of code as possible. To provide all this functionality, the framework works behind the scenes with the &lt;b&gt;CWinApp&lt;/b&gt; class to gather the necessary MFC classes and functions, to recognize and reconcile the Win32 classes that the application needs. This reconciliation is also made possible by a set of global functions. These functions have names that start with Afx... Some of these functions are:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;AfxFormatString1&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxFormatString2&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxMessageBox&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxFreeLibrary&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxGetApp&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxGetAppName&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxGetInstanceHandle&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxGetMainWnd&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxGetResourceHandle&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxInitRichEdit&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxLoadLibrary&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxMessageBox&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxRegisterWndClass&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxSocketInit&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxSetResourceHandle&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxRegisterClass&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxBeginThread&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxEndThread&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxGetThread&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AfxWinInit&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;parajust&quot;&gt;We will come back to some of these functions and we will see many other MFC macros in later lessons.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/8275062671876039505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/8275062671876039505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/8275062671876039505'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/framework.html' title='The Framework'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-923749054162981899</id><published>2011-06-01T16:48:00.002+05:30</published><updated>2011-06-01T16:48:56.334+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction to the Microsoft Foundation Class Library"/><title type='text'>A Basic Application</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/923749054162981899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/basic-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/923749054162981899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/923749054162981899'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/basic-application.html' title='A Basic Application'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-9194936260369748909</id><published>2011-06-01T16:47:00.000+05:30</published><updated>2011-06-01T16:47:07.959+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction to the Microsoft Foundation Class Library"/><title type='text'>CObject, the Ancestor of All/Most MFC Classes</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;To implement its functionality, the MFC is organized as a hierarchical tree of classes, the ancestor of which is &lt;strong&gt;CObject&lt;/strong&gt;:&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;img alt=&quot;CObject&quot; height=&quot;39px&quot; src=&quot;http://www.functionx.com/visualc/inheritance/object.gif&quot; width=&quot;84px&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;Although you can create C++ classes for your applications, most of the classes you will use throughout our lessons descend directly or indirectly from &lt;strong&gt;CObject&lt;/strong&gt;.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;The &lt;strong&gt;CObject&lt;/strong&gt; class lays a valuable foundation that other classes can build on. Using the rules of inheritance, the functionality of &lt;strong&gt;CObject&lt;/strong&gt; can be transparently applied to other classes as we will learn little by little. Some of the features that &lt;b&gt;CObject&lt;/b&gt; provides are:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Performing value streaming for saving or opening the contents of files &lt;/li&gt;
&lt;li&gt;Controlling dynamic creation and destruction of its inherited classes &lt;/li&gt;
&lt;li&gt;Checking the validity of variables of classes, etc &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;parajust&quot;&gt;You will hardly use &lt;strong&gt;CObject&lt;/strong&gt; directly in your program. Instead, you may create your own classes that are based on &lt;strong&gt;CObject&lt;/strong&gt;. Here is an example:&lt;/div&gt;&lt;pre&gt;class CCar : public CObject
{
public:
    CCar();
    char *Make;
    char *Model;
    int Year;
    long Mileage;
    int Doors;
    double Price;
};&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;To make sure that this application uses MFC, on the main menu, click Project -&amp;gt; Properties... &lt;/li&gt;
&lt;li&gt;In the left list, click Configuration Properties &lt;/li&gt;
&lt;li&gt;In the right list, click User of MFC, click the arrow of its combo box and select Use MFC In A Shared DLL&lt;br /&gt;
&lt;pre class=&quot;largeobject&quot;&gt;&lt;img alt=&quot;Property Pages&quot; border=&quot;0&quot; height=&quot;277px&quot; src=&quot;http://www.functionx.com/visualc/dlgboxes/proppages1.gif&quot; width=&quot;400px&quot; /&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Click OK &lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/9194936260369748909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/cobject-ancestor-of-allmost-mfc-classes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/9194936260369748909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/9194936260369748909'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/cobject-ancestor-of-allmost-mfc-classes.html' title='CObject, the Ancestor of All/Most MFC Classes'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-7009357931648587859</id><published>2011-06-01T16:45:00.000+05:30</published><updated>2011-06-01T16:45:13.436+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction to the Microsoft Foundation Class Library"/><title type='text'>Introduction to MFC</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;The Microsoft Foundation Class (MFC) library provides a set of functions, constants, data types, and classes to simplify creating applications for the Microsoft Windows family of operating systems.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ol&gt;&lt;li&gt;On the main menu, click File -&amp;gt; New Project... &lt;/li&gt;
&lt;li&gt;In the Project Types, click Visual C++ &lt;/li&gt;
&lt;li&gt;In the Templates list, click Win32 Project &lt;/li&gt;
&lt;li&gt;Set the Name to &lt;b&gt;Exercise1&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;sectover&quot;&gt;&lt;img alt=&quot;New Project&quot; border=&quot;0&quot; height=&quot;660px&quot; src=&quot;http://www.functionx.com/visualc/dlgboxes/newproject1.gif&quot; width=&quot;955px&quot; /&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Click OK &lt;/li&gt;
&lt;li&gt;On the first page of the wizard, click Next&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Win32 Application Wizard&quot; border=&quot;0&quot; height=&quot;517px&quot; src=&quot;http://www.functionx.com/visualc/dlgboxes/win32appwiz1.gif&quot; width=&quot;615px&quot; /&gt; &lt;/li&gt;
&lt;li&gt;On the second page, accept Windows Application and click Empty Project&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Win32 Application Wizard&quot; border=&quot;0&quot; height=&quot;335px&quot; src=&quot;http://www.functionx.com/visualc/dlgboxes/win32appwiz2.gif&quot; width=&quot;400px&quot; /&gt; &lt;/li&gt;
&lt;li&gt;Click Finish &lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/7009357931648587859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/introduction-to-mfc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/7009357931648587859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/7009357931648587859'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/introduction-to-mfc.html' title='Introduction to MFC'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-1870095186315117179</id><published>2011-06-01T16:43:00.002+05:30</published><updated>2011-06-01T16:43:30.425+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction to the Microsoft Foundation Class Library"/><title type='text'>Introduction to Win32</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;Win32 is a library made of data types, variables, constants, functions, and classes (mostly structures) that can be used to create applications for the Microsoft Windows family of operating systems. A typical application is made of at least two objects: a control and a host object on which the control is positioned.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;To create a Win32 application using Microsoft Visual C++: &lt;/div&gt;&lt;ul&gt;&lt;li&gt;On the Start Page, you can click New Project &lt;/li&gt;
&lt;li&gt;On the main menu, you can click File -&amp;gt; New Project... &lt;/li&gt;
&lt;li&gt;On the Standard toolbar, you can click the New Project button &lt;/li&gt;
&lt;li&gt;You can press Ctrl + N &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;parajust&quot;&gt;Any of these actions would display the New Project dialog box. From there, select Win32 Project item.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;Just like a C++ program always has a &lt;b&gt;main()&lt;/b&gt; function, a Win32 program uses a central function called &lt;b&gt;WinMain&lt;/b&gt;. The syntax of that function is: &lt;/div&gt;&lt;pre&gt;INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine, int nCmdShow );&lt;/pre&gt;&lt;div class=&quot;parajust&quot;&gt;To support international characters, Microsoft Windows provides another version of this function named &lt;strong&gt;_tWinMain&lt;/strong&gt;. This version uses the same syntax (same arguments) as the first.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;Unlike the C++&#39;s &lt;b&gt;main()&lt;/b&gt; function, the arguments of the &lt;b&gt;WinMain()&lt;/b&gt; function are not optional. Your program will need them to communicate with the operating system. Here is an example of starting a program with the &lt;b&gt;WinMain()&lt;/b&gt; function:&lt;/div&gt;&lt;pre&gt;#include &amp;lt;windows.h&amp;gt;

INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nCmdShow )
{ 
    return 0;
}&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/1870095186315117179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/introduction-to-win32.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1870095186315117179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1870095186315117179'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/06/introduction-to-win32.html' title='Introduction to Win32'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-5694035079672468952</id><published>2011-05-31T16:40:00.001+05:30</published><updated>2011-05-31T16:40:28.339+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++ Projects and Files"/><title type='text'>Adding Classes</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;To add a class to your project, you have various options. You can separately create a header file then create a source file. You can also import an existing header file and a source file from any valid path. Microsoft Visual C++ makes it easy to create a C++ class. When doing this, a header and a source files are prepared. A (default) constructor and a destructor are added. You can delete or completely change the supplied constructor and/or the destructor. Also, Microsoft Visual C++ includes the name of the header file in the source file so you would not have forgotten to do this. Most classes in Microsoft Visual C++ have their names starting with the letter C. Although this is only a suggestion, and any valid class name would work fine, to keep some harmony, in our lessons, we will follow this convention. &lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;To create a new class and add it to your project: &lt;/div&gt;&lt;ul&gt;&lt;li&gt;On the main menu, click Insert -&amp;gt; Add Class... &lt;/li&gt;
&lt;li&gt;In the Class View, right-click the name of the project, position the mouse on Add, and click Class... &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;parajust&quot;&gt;Any of these actions would open the New Class dialog box. From there, you can specify the type of class you want to create and click Open. You will then be asked to provide a name for the class.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/5694035079672468952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/adding-classes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/5694035079672468952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/5694035079672468952'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/adding-classes.html' title='Adding Classes'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-5943486474731846089</id><published>2011-05-31T16:39:00.002+05:30</published><updated>2011-05-31T16:39:41.735+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++ Projects and Files"/><title type='text'>Adding Existing Files to a Project</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;If a file had already been created and exists on a separate folder, drive, directory or project, you can import it and add it to your application. When you decide to add an existing file to a project, because Microsoft Visual Studio allows you a great level of flexibility on the types of files you can add, it is your responsibility to check that the file is valid. &lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;If you copy a file from somewhere and paste it in the folder that contains your project, the file is still not considered as part of the project. You must explicitly add it. Before adding an existing file to your project: &lt;/div&gt;&lt;ul&gt;&lt;li&gt;On the main menu, you can click File -&amp;gt; Add Existing Itemﾃδ｢ﾃ｢窶堋ｬﾃつｦ &lt;/li&gt;
&lt;li&gt;On the main menu, you can also click Project -&amp;gt; Add Existing Itemﾃδ｢ﾃ｢窶堋ｬﾃつｦ &lt;/li&gt;
&lt;li&gt;In the Solution Explorer, you can right-click the name of the project, position your mouse on Add and click Add Existing Itemﾃδ｢ﾃ｢窶堋ｬﾃつｦ &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;parajust&quot;&gt;Any of these actions would open the Add Existing Item dialog box. This requires you to locate the item and select it. Once the item is ready, to add it to the project, click the Open button. If you want to open it first, click the arrow of the Open button and specify how you want to open the file.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/5943486474731846089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/adding-existing-files-to-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/5943486474731846089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/5943486474731846089'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/adding-existing-files-to-project.html' title='Adding Existing Files to a Project'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-7079735596906928522</id><published>2011-05-31T16:39:00.000+05:30</published><updated>2011-05-31T16:39:12.177+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++ Projects and Files"/><title type='text'>Creating a File</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;parajust&quot;&gt;Although the most popular files used in Microsoft Visual C++ are header and source files, this IDE allows you to create various other types of files that are not natively C++ types. &lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;To create a file, if a project is currently opened: &lt;/div&gt;&lt;ul&gt;&lt;li&gt;On the main menu, click Project -&amp;gt; Add New Item... This would open the New dialog box from where you can select the desired type of file and click Open. By default, the new file would open in the Source Code Editor. If you want to open the file otherwise, after selecting it in the New dialog box, click the arrow of the Open As combo box. &lt;/li&gt;
&lt;li&gt;In the Solution Explorer or the Class View, right- click the name of the project, position the mouse of Add, and click the option you want &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/7079735596906928522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/creating-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/7079735596906928522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/7079735596906928522'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/creating-file.html' title='Creating a File'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-1367028649216084275</id><published>2011-05-31T16:37:00.002+05:30</published><updated>2011-05-31T16:37:59.900+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++ Projects and Files"/><title type='text'>Practical Learning: Creating a Microsoft Visual C++ Project</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;ol&gt;&lt;li&gt;Start Microsoft Visual Studio &lt;/li&gt;
&lt;li&gt;On the main menu, click File -&amp;gt; New Project... &lt;/li&gt;
&lt;li&gt;In the New Project dialog box, in the left list, click Visual C++.&lt;br /&gt;
In the right list, click Win32 Console Application &lt;/li&gt;
&lt;li&gt;In the Name edit box, type &lt;strong&gt;IntroductionToMFC1&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;Click OK &lt;/li&gt;
&lt;li&gt;In the Win32 Application Wizard, click Finish &lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/1367028649216084275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/practical-learning-creating-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1367028649216084275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1367028649216084275'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/practical-learning-creating-microsoft.html' title='Practical Learning: Creating a Microsoft Visual C++ Project'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-1215185716573271797</id><published>2011-05-31T16:37:00.000+05:30</published><updated>2011-05-31T16:37:19.294+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++ Projects and Files"/><title type='text'>Creating a New Project</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/1215185716573271797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/creating-new-project.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1215185716573271797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/1215185716573271797'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/creating-new-project.html' title='Creating a New Project'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-6472193380294748569</id><published>2011-05-31T16:33:00.000+05:30</published><updated>2011-05-31T16:53:53.186+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Introduction"/><title type='text'>Introduction to Microsoft Visual C++/MFC</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Microsoft Visual C++ is a programming environment used to create applications for the Microsoft Windows family of operating systems. To use these lessons, you must have installed either Microsoft Visual Studio 2010. Although Microsoft Visual Studio 2010 Professional provides many programming environments for the price of one, in our lessons, we will use it but we will cover only the Microsoft Foundation Class (MFC) library side.&lt;br /&gt;
&lt;br /&gt;
After installing it, to use the programming environment, you must first open it. To do that, you would click Start -&amp;gt; (All) Programs -&amp;gt; Microsoft Visual Studio 2010 -&amp;gt; Microsoft Visual Studio 2010. &lt;br /&gt;
In our lessons, unless used in code, the -&amp;gt; arrow means an action that should follow another. Based on this: &lt;br /&gt;
Edit -&amp;gt; Copy means click Edit, then click Copy &lt;br /&gt;
View -&amp;gt; Toolbars -&amp;gt; Custom means click View position the mouse on Toolbars, and then click Custom &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;To start Microsoft Visual C++ or Visual Studio, on the Taskbar, click Start (All) Programs -&amp;gt; Microsoft Visual Studio 2010 -&amp;gt; Microsoft Visual Studio 2010 &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;a href=&quot;http://www.functionx.com/vs2010/windows/ide1.gif&quot; target=&quot;_new&quot;&gt;&lt;img alt=&quot;IDE&quot; border=&quot;0&quot; height=&quot;350px&quot; src=&quot;http://www.functionx.com/vs2010/windows/ide1.gif&quot; width=&quot;483px&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;br /&gt;
&lt;/div&gt;After Microsoft Visual Studio has been opened, the screen you get is called an Integrated Development Environment or IDE. The IDE is the set of tools you use to create a program. &lt;div class=&quot;pcenter&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;The title bar is made of three section. The left section shows the system icon. The system icon is used to identify the application that you are using. Almost every application has its own system icon. The system icon holds its own list of actions; for example, it can be used to move, minimize, maximize or close (when double-clicked) a window. &lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;The middle section of the title bar displays Microsoft Visual Studio. This starting title displays in the beginning until you decide to create a particular type of application, then the title changes. You will experience it once we start some programming assignments. The middle section of the title bar can be also used to move, minimize, maximize the top section of the IDE, or to close Visual Studio. You can perform these actions by right-clicking the title bar and selecting from the menu. &lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;The right section of the title bar shows three system buttons: &lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;center&gt;&lt;table border=&quot;1&quot; bordercolor=&quot;#808080&quot; style=&quot;width: 284px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; colspan=&quot;3&quot; width=&quot;115&quot;&gt;&lt;b&gt;Button&lt;/b&gt;&lt;/td&gt;&lt;td width=&quot;153&quot;&gt;&lt;b&gt;Role&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;16px&quot; src=&quot;http://www.functionx.com/buttons/minimize1.gif&quot; width=&quot;18px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;26px&quot; src=&quot;http://www.functionx.com/buttons/minimize2.gif&quot; width=&quot;24px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;41&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15px&quot; src=&quot;http://www.functionx.com/buttons/minimize3.gif&quot; width=&quot;28px&quot; /&gt;&lt;/td&gt;&lt;td width=&quot;153&quot;&gt;Minimizes the window&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;16px&quot; src=&quot;http://www.functionx.com/buttons/maximize1.gif&quot; width=&quot;18px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;23px&quot; src=&quot;http://www.functionx.com/buttons/maximize2.gif&quot; width=&quot;23px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;41&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15px&quot; src=&quot;http://www.functionx.com/buttons/maximize3.gif&quot; width=&quot;28px&quot; /&gt;&lt;/td&gt;&lt;td width=&quot;153&quot;&gt;Maximizes the window&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;16px&quot; src=&quot;http://www.functionx.com/buttons/restore1.gif&quot; width=&quot;18px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;24px&quot; src=&quot;http://www.functionx.com/buttons/restore2.gif&quot; width=&quot;22px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;41&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15px&quot; src=&quot;http://www.functionx.com/buttons/restore3.gif&quot; width=&quot;28px&quot; /&gt;&lt;/td&gt;&lt;td width=&quot;153&quot;&gt;Restores the window&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;17px&quot; src=&quot;http://www.functionx.com/buttons/close1.gif&quot; width=&quot;19px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;31&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;24px&quot; src=&quot;http://www.functionx.com/buttons/close2.gif&quot; width=&quot;24px&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;41&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15px&quot; src=&quot;http://www.functionx.com/buttons/close4.gif&quot; width=&quot;28px&quot; /&gt;&lt;/td&gt;&lt;td width=&quot;153&quot;&gt;Closes the window&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;The main menu under the title bar is used to perform all types of actions on the IDE. In our lessons:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;The expression &quot;main menu&quot; refers to the menu in the top section of the IDE &lt;/li&gt;
&lt;li&gt;MSVC means Microsoft Visual C++. &lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;parajust&quot;&gt;A toolbar is an object made of buttons. These buttons provide the same features you would get from the main menu. Under the main menu, the IDE is equipped with a Standard toolbar used to create a new project, open a file, save a project, etc&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;Besides designing applications, one of your most regular jobs will consist of writing code that directs the computer as to what to do, when, and how to do it. This is done in an appropriate window called the Code Editor.&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;The Code Editor is a feature-rich text editor programmed to recognize the parts of a program that belong to C++ or not. The Code Editor manages your jobs by organizing its files into labels or tabs. If your project contains more than one file, you can click the desired tab to access one of the files.&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;The basic building block of a program is called a C++ file. Whenever you create a new project, the Microsoft Visual Studio programming environment creates various files, such as header files and source files. To display a header file, you can double-click its name in the Class View. Since the source and the header file go in pair (when using classes), they hold the same name but have different extensions.&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;A toolbar is an object made of buttons. These buttons provide the same features you would get from the (main) menu, only faster. Under the main menu, the Integrated Development Environment (IDE) is equipped with the Standard toolbar.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;By default, when you start Microsoft Visual Studio, it is equipped with one toolbar: Standard. To get more toolbars, on the main menu, you can click View -&amp;gt; Toolbars and click the toolbar of your choice. You can also right-click any available toolbar or the main menu. This displays a list of all the available toolbars. Those that are currently opened have a check mark next to them.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;A toolbar is equipped with buttons. To know what a button is used for, you can position the mouse on top of it. A tool tip will come up and display for a few seconds. In our lessons, each button on any toolbar will be named after its tool tip. This means that, if a tool tip displays &quot;New&quot;, its button will be called the New button.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;Microsoft Visual Studio&#39;s menus and toolbars can be customized. You can customize a menu category on the main menu by adding a menu item to it. You can customize a toolbar by adding a button to it. To start, right-click anything on the main menu or on any toolbar and click Customize... For example, imagine you want to add an item named Start Without Debugging so that it would let you easily execute your projects and you want to add its button to the Standard toolbar, and imagine you want to position it on the left side of the Start button:&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;img alt=&quot;The position where the button will be added&quot; height=&quot;136px&quot; src=&quot;http://www.functionx.com/vs2010/windows/customize1.gif&quot; width=&quot;560px&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;To proceed:&lt;/div&gt;&lt;ol type=&quot;a&quot;&gt;&lt;li&gt;You can right-click any button on any toolbar or right-click the main menu and click Customize &lt;/li&gt;
&lt;li&gt;&amp;nbsp;On the Customize dialog box, click the Commands tab &lt;/li&gt;
&lt;li&gt;&amp;nbsp;Click the Toolbars radio button &lt;/li&gt;
&lt;li&gt;&amp;nbsp;In the right combo box, select the toolbar to which you want to add a button. In this case, that would be Standard &lt;/li&gt;
&lt;li&gt;In the Controls list, click &lt;a class=&quot;kLink&quot; href=&quot;http://www.functionx.com/visualc/Lesson01.htm#&quot; id=&quot;KonaLink5&quot; jquery1306840488265=&quot;2&quot; style=&quot;position: static; text-decoration: underline! important;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; font-weight: 400; position: static;&quot;&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue! important; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; font-weight: 400; position: relative;&quot;&gt;the &lt;/span&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue! important; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; font-weight: 400; position: relative;&quot;&gt;button&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; that will succeed the one you want to add. In this case, this would be Start / Continue: &lt;div class=&quot;pcenter&quot;&gt;&lt;img alt=&quot;Customize&quot; height=&quot;550px&quot; src=&quot;http://www.functionx.com/vs2010/dlgboxes/customize1.gif&quot; width=&quot;535px&quot; /&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;In the right list, click Add Command &lt;/li&gt;
&lt;li&gt;&amp;nbsp;In the Add Command dialog box, in the Categories list, select the category that has the button you want &lt;/li&gt;
&lt;li&gt;&amp;nbsp;In the Commands list, click the button or menu item you want. For our example, that would be Start Without Debugging&lt;/li&gt;
&lt;/ol&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;img alt=&quot;Add Command&quot; height=&quot;370px&quot; src=&quot;http://www.functionx.com/vs2010/dlgboxes/customize2.gif&quot; width=&quot;585px&quot; /&gt;i) After makiing the selection, click OK &lt;/div&gt;&lt;ol&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;img alt=&quot;Add Command&quot; height=&quot;550px&quot; src=&quot;http://www.functionx.com/vs2010/dlgboxes/customize3.gif&quot; width=&quot;535px&quot; /&gt;&lt;/div&gt;&lt;/ol&gt;On the Customize dialog box, click Close: &lt;img alt=&quot;The position where the button has been added&quot; border=&quot;0&quot; height=&quot;160px&quot; src=&quot;http://www.functionx.com/vs2010/windows/customize2.gif&quot; width=&quot;559px&quot; /&gt;&lt;br /&gt;
&lt;div class=&quot;pcenter&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;In the same way, you can customize any toolbar and any menu category.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;While working on your projects, you will usually need to figure out how something can be done and sometimes why it is done like that. There are three primary types of help you can use: online, MSDN, and others. &lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;When Microsoft Visual Studio gets installed, it asks you whether you want to install the MSDN library. This is because it ships with a DVD that contains online help files. If you decide to install the MSDN library, it would be installed as an independent program but would be internally linked to Microsoft Visual Studio.&lt;/div&gt;&lt;div class=&quot;parajust&quot;&gt;To get help while you are working on a project, click the item, keyword, or class, etc and press F1. The browser Help window would display help on the topic:&lt;/div&gt;&lt;div class=&quot;pcenter&quot;&gt;&lt;img alt=&quot;Help&quot; height=&quot;526px&quot; src=&quot;http://www.functionx.com/vs2010/windows/help1.gif&quot; width=&quot;639px&quot; /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/6472193380294748569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/introduction-to-microsoft-visual-cmfc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/6472193380294748569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/6472193380294748569'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/introduction-to-microsoft-visual-cmfc.html' title='Introduction to Microsoft Visual C++/MFC'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7203764545426358194.post-737120329265921061</id><published>2011-05-31T16:29:00.001+05:30</published><updated>2011-05-31T16:29:25.138+05:30</updated><title type='text'>Links</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;left_aligned&quot;&gt;&lt;b&gt;Official resources&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/&quot; target=&quot;_new&quot;&gt;MSDN&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/visualc/&quot; target=&quot;_new&quot;&gt;Visual C++ Home&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/newsgroups/default.asp?url=/newsgroups/loadframes.asp?ICP=msdn&amp;amp;sLCID=us&amp;amp;NewsGroup=microsoft.public.vc.language&quot; target=&quot;_new&quot;&gt;microsoft.public.vc.language&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Top&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.codeguru.com/&quot; target=&quot;_new&quot;&gt;CodeGuru&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.codeproject.com/cpp&quot; target=&quot;_new&quot;&gt;CodeProject&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.developerfusion.com/c/186/&quot; target=&quot;_new&quot;&gt;DeveloperFusion.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.cuj.com/&quot; target=&quot;_new&quot;&gt;C/C++ Users Journal&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.rsdn.ru/&quot; target=&quot;_new&quot;&gt;RSDN&lt;/a&gt; (RU)&lt;br /&gt;
&lt;a href=&quot;http://www.firststeps.ru/&quot; target=&quot;_new&quot;&gt;First Steps&lt;/a&gt; (RU)&lt;br /&gt;
&lt;a href=&quot;http://www.sources.ru/&quot; target=&quot;_new&quot;&gt;Sources.ru&lt;/a&gt; (RU)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tricks, Tips, FAQs&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.research.att.com/~bs/bs_faq2.html&quot; target=&quot;_new&quot;&gt;Bjarne Stroustrup&#39;s C++ Style and Technique FAQ&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.codeguru.com/FAQS&quot; target=&quot;_new&quot;&gt;CodeGuru FAQ&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.parashift.com/c++-faq-lite&quot; target=&quot;_new&quot;&gt;C++ FAQ Lite&lt;/a&gt; by Marshall Cline&lt;br /&gt;
&lt;a href=&quot;http://www.codeproject.com/cpp/cppforumfaq.asp&quot; target=&quot;_new&quot;&gt;CodeProject Forum FAQ&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.mooremvp.freeserve.co.uk/&quot; target=&quot;_new&quot;&gt;Boob Moore&#39;s page (Win32, NT, MFC)&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://cui.unige.ch/OSG/people/Past/fuentes/Mfc/mfc.html&quot; target=&quot;_new&quot;&gt;Edelmiro Fuentes&#39;s page&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.sources.ru/cpp/cpp_vcpp_faq.shtml&quot; target=&quot;_new&quot;&gt;http://www.sources.ru/cpp/cpp_vcpp_faq.shtml&lt;/a&gt; (RU)&lt;br /&gt;
&lt;a href=&quot;http://www.akzhan.midi.ru/devcorner/devcorner-home-rus.html&quot; target=&quot;_new&quot;&gt;Akzhan Site&lt;/a&gt; (RU)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Forums, newsgroups&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.codeguru.com/cgi-bin/bbs/wt/wwwthreads.pl?action=list&amp;amp;Board=vc&quot; target=&quot;_new&quot;&gt;CodeGuru Forum&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/newsgroups/default.asp?url=/newsgroups/loadframes.asp?ICP=msdn&amp;amp;sLCID=us&amp;amp;NewsGroup=microsoft.public.vc.language&quot; target=&quot;_new&quot;&gt;microsoft.public.vc.language&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://groups.google.com/groups?group=comp.lang.c%2B%2B&quot; target=&quot;_new&quot;&gt;comp.lang.c++&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.rsdn.ru/forum&quot; target=&quot;_new&quot;&gt;RSDN Forum&lt;/a&gt; (RU)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Libraries, Components, Add-ons, Add-ins&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.boost.org/libs/libraries.htm&quot; target=&quot;_new&quot;&gt;Boost Libraries&lt;/a&gt; #1 for C++!&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/tinyxml&quot; target=&quot;_new&quot;&gt;TinyXML&lt;/a&gt; - light yet powerful XML library. Forget about MSXML! :)&lt;br /&gt;
&lt;a href=&quot;http://www.wholetomato.com/&quot; target=&quot;_new&quot;&gt;Whole Tomato Software:&lt;/a&gt; Code syntax highlighting&lt;br /&gt;
&lt;a href=&quot;http://www.compuware.com/products&quot; target=&quot;_new&quot;&gt;Compuware corporation:&lt;/a&gt; BoundsChecker, SoftICE etc.&lt;br /&gt;
&lt;a href=&quot;http://www.codejock.com/products/toolkitpro/&quot; target=&quot;_new&quot;&gt;Xtreme ToolkitPro&lt;/a&gt; - Industry leading Visual C++ MFC UI controls.&lt;br /&gt;
&lt;a href=&quot;http://www.bdsoft.com/tools/stlfilt.html&quot; target=&quot;_new&quot;&gt;STL Error Decryptor&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.ucancode.net/&quot; target=&quot;_new&quot;&gt;UCanCode:&lt;/a&gt; XD++ MFC Class Library for Diagrams&lt;br /&gt;
&lt;a href=&quot;http://www.regxlib.com/&quot; target=&quot;_new&quot;&gt;Regular Expression Library&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Disk File Systems&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.mtu-net.ru/pinetar/dm/comp_ntfs.htm&quot; target=&quot;_new&quot;&gt;NTFS&lt;/a&gt; (RU)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Serial Communication&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwbgen/html/msdn_serial.asp&quot; target=&quot;_new&quot;&gt;Serial Communications in Win32&lt;/a&gt;, MSDN&lt;br /&gt;
&lt;a href=&quot;http://www.codeproject.com/system/cserialport.asp&quot; target=&quot;_new&quot;&gt;CSerialPort - Serial Port Wrapper&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.sysinternals.com/ntw2k/freeware/portmon.shtml&quot; target=&quot;_new&quot;&gt;COM port monitor&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.happytown.ru/prog/practika/com_win32.html&quot; target=&quot;_new&quot;&gt;COM ports in Win32&lt;/a&gt; (RU)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;File formats&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wotsit.org/&quot; target=&quot;_new&quot;&gt;WOT IS IT&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Win32 and HTML Help Development&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp&quot; target=&quot;_new&quot;&gt;Microsoft HTML Help Workshop&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.mvps.org/htmlhelpcenter&quot; target=&quot;_new&quot;&gt;HTML Help Center&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.htmlhelp.com/&quot; target=&quot;_new&quot;&gt;Web Design Group (HTMLHelp.com)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Books and Tutorials&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html&quot; target=&quot;_new&quot;&gt;Thinking in C++&lt;/a&gt; 2nd Edition by Bruce Eckel&lt;br /&gt;
&lt;a href=&quot;http://www.cprogramming.com/&quot; target=&quot;_new&quot;&gt;C++ programming&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.aul.fiu.edu/tech/visualc.html&quot; target=&quot;_new&quot;&gt;Resources on the Web&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.w3schools.com/&quot; target=&quot;_new&quot;&gt;W3Schools&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.softcraft.ru/&quot; target=&quot;_new&quot;&gt;SoftCraft&lt;/a&gt; (RU)&lt;br /&gt;
&lt;a href=&quot;http://freebooks.boom.ru/&quot; target=&quot;_new&quot;&gt;Free books to download&lt;/a&gt; (RU)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Application Development Articles&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www-106.ibm.com/developerworks/views/rational/articles.jsp&quot; target=&quot;_new&quot;&gt;IBM Rational Library&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;OTHER TOPICS&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;WIN NT/2K Registry Tips&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.jsiinc.com/reghack.htm&quot; target=&quot;_new&quot;&gt;JSI Inc.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Installers&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.jrsoftware.org/isinfo.php&quot; target=&quot;_new&quot;&gt;Inno Installer&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://nsis.sourceforge.net/home/&quot; target=&quot;_new&quot;&gt;Nullsoft Scriptable Install System&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Data Recovery&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.vitaldata.ca/&quot; target=&quot;_new&quot;&gt;Data Recovery.&lt;/a&gt; Montreal, QC, Canada&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Link to Links&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://directory.google.com/Top/Computers/Programming/Languages/C++/Visual_C++/&quot; target=&quot;_new&quot;&gt;Google Directory links&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.scriptsearch.com/&quot; target=&quot;_new&quot;&gt;ScriptSearch.com&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://advancedvcpp.blogspot.com/feeds/737120329265921061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/737120329265921061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7203764545426358194/posts/default/737120329265921061'/><link rel='alternate' type='text/html' href='http://advancedvcpp.blogspot.com/2011/05/links.html' title='Links'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>