I haven't used Microsoft's Visual C++ since version 6. I've always thought Microsoft makes the best software development IDEs by far, but the compiler was extremely lacking.
I figured I'd try Win32 GUI development again (I do mostly Unix or cross-platform non-GUI), so,
1) I downloaded Visual C++ Express Beta 2 and installed it.
2) It didn't compile anything successfully, including "Hello, World" (See this thread for those looking for a solution to this problem). Apparently this is because it didn't include the Platform SDK, didn't mention that it was required or that it even exists, and didn't make it one of several optional downloads with the installer.
3) So, I downloaded the platform SDK. It wouldn't install at first. Some kind of network error.
The install hung, ignoring the cancel and "X" buttons. I killed the process and tried again. It refused to start, saying that a previous installation was in progress and that I must wait for it to finish. I somehow doubted that it would finish anytime soon.
Apparently, MSIEXEC.EXE didn't die when I killed the install, so I tried to kill that too.
It declined, saying that I didn't have access to kill the process (I was running as administrator). Kind of makes me wish NT had a "kill -9" command like Unix. It's the "I don't care if you think you are smarter than the user, kill it anyway" command. Unix is kind of nice that way.
4) I eventually figured out how to run the task manager with system-level access and "killed it anyway," then the install completed.
5) Visual C++ wasn't impressed. It couldn't find the SDK. Apparently Visual C++ Express and the SDK don't communicate or share paths in the registry, even though the two are intimitely related and more or less require each-other. Nice.
<sigh>. Oh well, I'll manually set the paths.
6) Oops... They neglected to make it possible to do so. The paths listbox is AWOL.
So... It doesn't detect the SDK, and doesn't allow you to tell it where the SDK is, and it doesn't bother looking at the SDK's default installation directory. Great. Well, it is possible to write C/C++ software without any headers whatsoever, but then again it is also possible to implement MS Office with the DOS "debug" command. It's just impractical.
So, I found a way to hack the registry with the correct paths, but decided instead to reinstall the SDK in the directory that VC++ somehow assumes it is in. ("C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK" for those looking for a workaround to this problem)
7) I read Microsoft's own instructions on getting the SDK to work with Visual C++ Express. Hmm,
"Click on the Win32 Template and then give your project a name and click OK. In the Win32 Application Wizard dialog box, make sure that Windows application is selected as the Application type and the ATL is not selected."
Okay! I'll "make sure" that "Windows Application" is selected except, oh wait, that template doesn't exist!
I understand that this is beta software, but "beta" generally means "Okay, we have this generally finished and working, but it hasn't recieved the thorough testing required to make it a polished release product." "beta2" generally means "We've fixed most of the bugs that testers have found in beta 1. Try this, and see if there are any others."
It seems that the extent of testing this thing has received amounts to "It compiled."
If that is not the case, how is it, exactly, that QA missed such minor nuisances as "it doesn't actually work," or that after jumping through hoops to get the SDK installed and in the one and only path that the product allows without registry hacking (which is not the SDK's default path, mind you), that one cannot create even a "Hello, World" window without either converting a project from an old version of Visual C++, or without somehow coercing the "Win32 Console Application" template to create a window Am I totally out of line here, or is this rediculous, even if this were a pre-alpha limited test release
If you download a beta of KDevelop, Eclipse, or even DevC++ (steaming pile that it may be), they may exibit odd behavior, have an unrefined interface, or even have missing features, but they will at least compile a Hello, World app! How can a beta even be beta tested if the most basic possible task doesnt work even after the SDK install steps
If this is the product Microsoft wants to use to lead people into buying the Professional and Enterprise editions, perhaps it will be best to stick with KDevelop and Eclipse. They both include a feature widely regarded as being very important in a modern IDE -- they WORK.
(as a side note, when I first posted this, I clicked "preview" and was asked for my Passport password. After entering the password, my message was lost and had to be re-typed. I'm so impressed with how much Microsoft products have improved since the VC++6 days!)

Has anyone at Microsoft actually used VC++ Express B2?
woodland30033
The only thing "non-standard" I got was that after the SQL Server installation told me it was succesfully installed, I then got a pop-up that said the installation had failed. It does, however, seem to be working anyway.
Yes, I have the Windows application template.
System is an AMD 3200 with 1GB, running Windows XP Pro with SP2 and all updates installed.
Richard
netguruf
Butterfly Boy
#include <iostream.h>
int main()
{
cout<<"TEST\n";
return 0;
}
It gave me a database error.
When I looked it up in the "help" articles it says that I need DBI.dll.
WHERE IS this file They don't even have a link to it on that page.
My other posting has more info on the problem.
http://forums.microsoft.com/msdn/ShowPost.aspx PostID=10577
John Tsoi
Apparently, MSIEXEC.EXE didn't die when I killed the install, so I tried to kill that too.
It declined, saying that I didn't have access to kill the process (I was running as administrator). Kind of makes me wish NT had a "kill -9" command like Unix. It's the "I don't care if you think you are smarter than the user, kill it anyway" command. Unix is kind of nice that way.
That command exists in windows as well. It is "kill -f <pid>".
But it's not part of the default install, and still can't kill some processes unless run with the bizarre "at /interactive" trick. :P
Anyway,
----------------------
On the SDK install issue itself, I have heard relatively few complaints about problems installing the Platform SDK. I'll let that team know about your install issue.
5) Visual C++ wasn't impressed. It couldn't find the SDK. Apparently Visual C++ Express and the SDK don't communicate or share paths in the registry, even though the two are intimitely related and more or less require each-other. Nice.
<sigh>. Oh well, I'll manually set the paths.
That is probably the crux of the issue. Although we support doing Platform SDK development wth the Express Edition, that is not a primary scenario for which we designed this version. The focus of the Express Edition is on supporting Standard C++ (not Win32 specific) and on .NET development. For both of these scenarios the Platform SDK is not needed.
Alright, that makes sense, though I find it curious that Microsoft would release a development product not intended for Windows development.
If non-Win32 development will remain its focus, it would probably be best to strongly indicate that, since it did not appear to be obvious (at least to me).
------------------------------------------------
That being said, we are looking for a nicer more automated integration if you do install the PSDK on top of Visual C++ Express.
It would probably work to have a radio button set with the options: "Locate the install directory of the SDK" [browse], "Find it automatically" (searches common default paths and/or registry then a complete drive search if needed), "Download and install", or something like that.
----------------------------------------------
...that template doesn't exist!
As you know from the other thread this is a second bug you are hitting.
Would it be possible for Microsoft to provide a download + instructions (or maybe even an installer, since I am sure you guys have infinite free time to kill near the release of a major product) for this template
-----------------------------------------------
I understand that this is beta software...
Express Editions were a late addition to the product (specifically for C++) and as such shipped at lower quality that Standard and up versions in Beta 2.
Fair enough.
--------------------------------------
I don't like the web forums either. We haven't quite learned yet how to do community feature at anything near production quality.
Well, to its credit, this is the first forum software I've seen with word-processor-like formatting controls. It works fine in Firefox as well. Adding a cookie to with a message ID or something would probably fix it.
Best regards,
Charles Burns
SPDOTNET
Does your copy of beta 2 have the "Win32 application template" As some of the messages I linked indicate, there are quite a few other people who have found that it is missing. So is its existance random, or is it based on some preexisting condition Can I download it from somewhere, or make it
On another note, I know that is Microsoft's party line, but if you are seriously under the impression that C# "obsoletes" C/C++, no offense, but you should broaden your understanding of the world of software development.
Guess what Windows itself is written in And large parts of the .NET framework And Linux, Solaris, Microsoft Office, and most non-trivial systems software in general
C# is a RAD language, like Visual Basic but more sophisticated. C and C++ are lower-level languages. While one can't make pretty GUI apps in them as quickly, very high-level languages like C# are hardly suited to low-level tasks, and C/C++ (and assembler) are necessary when the best performance and/or smallest size is an important goal in development. (See if you can make a 324 byte compiled GUI application in C#, even WITH the huge framework).
Additionally, any task that uses binary data, for example, are leaps and bounds easier and faster in C++ for the most part.
Try implementing MD5 in C#, or SMB, or the ICQ Oscar 8 protocol in C#, for example. It can be done, but what a pain in the neck!
True, MD5 is now part of the .NET framework, but that is beside the point--the point being that low-level tasks that haven't been expressly canned for you by languages like C#, Java, Visual Basic, etc. are a rediculous pain in the neck, just as doing certain high-level tasks is easy in C# or Java, etc., but quite difficult in C++.
I think it is a good idea to know both languages, depending on what the project's scope is!
wvbotha
isoandy -
The code you tried with VC++ Express is not ISO standard C++. Specifically, the <iostream.h> header is no longer supported (since VC++ 2003). Try this:
#include <iostream>
int main()
{
std::count << "Hello, world\n";
}
jbaynham
I am running Windows 2000 and did not install the SQL server option. Those are the only two differences I can see (I even have the exact same hardware that you mentioned, though I doubt hardware has anything to do with it). I'll have to try installing on my Windows XP-based laptop with the SQL server and see if that somehow helps. If so, I'll post back here.
Cameron Black
I am sorry you had such a poor experience with the Beta 2 version of the Express edition.
90% of your problems are caused by the single issue of a late regression in supporting the setting of directory paths in the Express Edition. This was caused by tighening bup security around a COM component that is used for this functionality in VS.
Comments on some other issues inline (your original text quoted in green).
I haven't used Microsoft's Visual C++ since version 6. I've always thought Microsoft makes the best software development IDEs by far, but the compiler was extremely lacking.
I figured I'd try Win32 GUI development again (I do mostly Unix or cross-platform non-GUI), so,
1) I downloaded Visual C++ Express Beta 2 and installed it.
2) It didn't compile anything successfully, including "Hello, World" (See this thread for those looking for a solution to this problem). Apparently this is because it didn't include the Platform SDK, didn't mention that it was required or that it even exists, and didn't make it one of several optional downloads with the installer.
3) So, I downloaded the platform SDK. It wouldn't install at first. Some kind of network error.
The install hung, ignoring the cancel and "X" buttons. I killed the process and tried again. It refused to start, saying that a previous installation was in progress and that I must wait for it to finish. I somehow doubted that it would finish anytime soon.
Apparently, MSIEXEC.EXE didn't die when I killed the install, so I tried to kill that too.
It declined, saying that I didn't have access to kill the process (I was running as administrator). Kind of makes me wish NT had a "kill -9" command like Unix. It's the "I don't care if you think you are smarter than the user, kill it anyway" command. Unix is kind of nice that way.
That command exists in windows as well. It is "kill -f <pid>".
On the SDK install issue itself, I have heard relatively few complaints about problems installing the Platform SDK. I'll let that team know about your install issue.
4) I eventually figured out how to run the task manager with system-level access and "killed it anyway," then the install completed.
5) Visual C++ wasn't impressed. It couldn't find the SDK. Apparently Visual C++ Express and the SDK don't communicate or share paths in the registry, even though the two are intimitely related and more or less require each-other. Nice.
<sigh>. Oh well, I'll manually set the paths.
That is probably the crux of the issue. Although we support doing Platform SDK development wth the Express Edition, that is not a primary scenario for which we designed this version. The focus of the Express Edition is on supporting Standard C++ (not Win32 specific) and on .NET development. For both of these scenarios the Platform SDK is not needed.
That being said, we are looking for a nicer more automated integration if you do install the PSDK on top of Visual C++ Express.
6) Oops... They neglected to make it possible to do so. The paths listbox is AWOL.
So... It doesn't detect the SDK, and doesn't allow you to tell it where the SDK is, and it doesn't bother looking at the SDK's default installation directory. Great. Well, it is possible to write C/C++ software without any headers whatsoever, but then again it is also possible to implement MS Office with the DOS "debug" command. It's just impractical.
So, I found a way to hack the registry with the correct paths, but decided instead to reinstall the SDK in the directory that VC++ somehow assumes it is in. ("C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK" for those looking for a workaround to this problem)
7) I read Microsoft's own instructions on getting the SDK to work with Visual C++ Express. Hmm,
"Click on the Win32 Template and then give your project a name and click OK. In the Win32 Application Wizard dialog box, make sure that Windows application is selected as the Application type and the ATL is not selected."
Okay! I'll "make sure" that "Windows Application" is selected except, oh wait, that template doesn't exist!
As you know from the other thread this is a second bug you are hitting.
I understand that this is beta software, but "beta" generally means "Okay, we have this generally finished and working, but it hasn't recieved the thorough testing required to make it a polished release product." "beta2" generally means "We've fixed most of the bugs that testers have found in beta 1. Try this, and see if there are any others."
Express Editions were a late addition to the product (specifically for C++) and as such shipped at lower quality that Standard and up versions in Beta 2.
It seems that the extent of testing this thing has received amounts to "It compiled."
If that is not the case, how is it, exactly, that QA missed such minor nuisances as "it doesn't actually work," or that after jumping through hoops to get the SDK installed and in the one and only path that the product allows without registry hacking (which is not the SDK's default path, mind you), that one cannot create even a "Hello, World" window without either converting a project from an old version of Visual C++, or without somehow coercing the "Win32 Console Application" template to create a window Am I totally out of line here, or is this rediculous, even if this were a pre-alpha limited test release
If you download a beta of KDevelop, Eclipse, or even DevC++ (steaming pile that it may be), they may exibit odd behavior, have an unrefined interface, or even have missing features, but they will at least compile a Hello, World app! How can a beta even be beta tested if the most basic possible task doesnt work even after the SDK install steps
If this is the product Microsoft wants to use to lead people into buying the Professional and Enterprise editions, perhaps it will be best to stick with KDevelop and Eclipse. They both include a feature widely regarded as being very important in a modern IDE -- they WORK.
The explanation here is pretty simple, what you are trying to do wasn't one of the primary scenarios of the product that were tested. Which is why for Beta 2 it didn't get the coverage it should have. IOW, it isn't a Hello World for the target of Visual C++ Express.
(as a side note, when I first posted this, I clicked "preview" and was asked for my Passport password. After entering the password, my message was lost and had to be re-typed. I'm so impressed with how much Microsoft products have improved since the VC++6 days!)
I don't like the web forums either. We haven't quite learned yet how to do community feature at anything near production quality.
Ronald Laeremans
Visual C++ team
Pradeep K R
I have no idea what may be causing that problem. I did a search on my system and I do have DBI.dll, but it's a perl support library in my Matlab 7 directory. Matlab is almost, but not quite, completely unrelated to Visual Studio in any way.
What I would do first is do a search of your drive for all *.pdb files. I am not sure what these are (other than that PDB stands for Program Database), but you might try renaming each of them, one-at-a-time, in your projects. If the file is missing, perhaps VC++ will re-generate the file.
I notice that there are a number of .pdb files in Visual C++'s lib directory, and some in the SDK directory. Perhaps you should try reinstalling the SDK (after uninstalling and completely deleting the old directory). Be sure you get the one labeled for Windows 2003 (which works with all Windows versions), not the Windows XP SP2 SDK (which is for Windows XP SP2 exclusively, or so I hear).
You might also try making a new Win32 console application from scratch (real C++, not non-CLR), then visit the project properties menu and uncheck anything that seems related to database access, though I would imagine that the default settings would not require such a file. Did you install Microsoft SQL Server Express If so, perhaps try reinstalling without that option (though doing so may be the cause of my problem). Or perhaps wait for beta 3.
Hope this helps, or at least gives you some ideas.
AnhTinLove
The only other IDE I tried has been #Develop - and that won't compile even a "Hello World", nor even display the design tab without crashing to an Unhandled Exception.
I guess your bug must be machine specific because lots of other people are using the Beta's just fine.
Are you sure that when you went rummaging through the registry you didn't mess something up