这里为什么我用wWinMain而不是WinMain呢 我们来看看WinBase.h中的定义吧.

我们的程序是中文的,应属于Unicode的,所以,最好使用wWinMain函数,它是一个宏,无论如何定义,它最终都是指向WinMain函数.
刚才我们做了一个MainFom窗体,我们要把它所在的头文件包含进来.
[cpp] view plaincopyprint
#include <Windows.h>
#include "MainForm.h"
#include <Windows.h>
#include "MainForm.h"
接着我们在入口点中显示主窗体.完整的代码如下:
[cpp] view plaincopyprint
#include <Windows.h>
#include "MainForm.h"
using namespace System::Windows::Forms;
int WINAPI wWinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nShowCmd
)
{
Application::Run(gcnew MyWindowsFormApp::MainForm());
return 0;
}
#include <Windows.h>
#include "MainForm.h"
using namespace System::Windows::Forms;
int WINAPI wWinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nShowCmd
)
{
Application::Run(gcnew MyWindowsFormApp::MainForm());
return 0;
}
注意,创建新实例的时候,在托管C++(www.cppentry.com)中要用gcnew.
现在,运行一下,是不是没有了DOS窗口了.

好了,看不到DOS窗口了,这样就解决问题了.
一些建议:
我们不应该为了用某种语言而用某种语言,WinForm其实也是封装了Win32控件的,所以,有时候应考虑用VB.NET或C#,至少可以提高开发效率,而UI布局也方便了很多,C++(www.cppentry.com)可以用于编写一些类库之类的.
在.NET 4之后,许多类库被重写,性能有了本质提升,你看看.NET 4.0 连Logo都换了,这是走向成熟的标志.所以,我建议大家,学到的知识要灵活去应用,不必要为了使用而使用某个语言,最重要的是高效快捷地解决问题就行了,有了技术还得加上技巧的配合才能发挥作用.