For Programmers Only

I have started my next software project. It is called "sitescan". The program shall scan you entire web site, and identify all the links in it. I have given the program some thought. It should not take too long to create the first version of it. While I am busy coding up this app, I thought I would discuss some issues related to distributing software like I do.

Currently I code up most of my apps using Visual C++ version 6.0. This is actually a very old version of the C++ compiler from Microsoft. However I have found that it is still very useful. When I release a new application to the public, I want the experience to be simple. I just want to give my users a single executable file that they can double-click and run.

My executable that gets distributed at release time must contain all of the logic build into the executable. I don't like bothering my users with complicated install programs. Visual C++ normally depends on some additional dynamic linked library (DLLs) provided by Microsoft. I choose instead to have the library code embedded directly in the executable. Here is how you accomplish this with Microsoft Visual C++ version 6.0 standard edition:
  1. Choose Settings from the Project menu
  2. On the Project Settings dialog, click on the C/C++ tab
  3. On the left, change the "Settings For:" combo box to Win32 Release
  4. In the Project Options edit control on the bottom, change /MD to /MT
  5. In the Project Options edit control on the bottom, remove /D "_AFXDLL"

After you have followed steps 1 through 5 above, rebuild the release version of your application. The resulting executable has all of the dependent library code built in. This does make the executable bigger. However everything it needs it included in the executable. I don't recommend this method for huge applications. But for the size of the apps I have been releasing, this makes it very easy for the user to run my app with minimal problems during install.

Be on the lookout for an upcoming post when I release my sitescan application to the public.