【编程】【c语言】用vc6编写最简单的Win32 helloworld窗口程序
longhorn吧
全部回复
仅看楼主
吧务
level 11
松鼠qwe2 楼主
楼主刚从bilibili这个视频中学会的。原视频网址:https://www.bilibili.com/video/BV1Qb4y1o7u9?spm_id_from=333.788.videopod.episodes&vd_source=cd761caeb69c056102e56282c7535a53
是c语言代码。属于win32编程。代码比普通的控制台helloworld稍微复杂一些。不过由于原视频的代码编译后打开是错误提示对话框的helloworld,所以说我改进了一些。把视频中的源代码:
#include <windows.h>
int WinMain(HINSTANCE hIns,HINSTANCE hPreIns,LPSTR IpCmdLine,int nCmdShow){
MessageBox(NULL,"helloworld","information",MB_YESNOCANCEL|MB_ICONERROR);
return 0;
}
运行效果是这样的:
改进后的源代码如下:
#include <windows.h>
int WinMain(HINSTANCE hIns,HINSTANCE hPreIns,LPSTR IpCmdLine,int nCmdShow){
MessageBoxA(NULL,"helloworld","information",MB_OK|MB_ICONINFORMATION);
return 0;
}
运行效果:
在二楼,楼主会教大家怎么编写。
2026年07月01日 09点07分 1
吧务
level 11
松鼠qwe2 楼主
1、先打开vc6,选择新建win32应用程序(win32 application),然后选择空工程。
2、创建完工程发现没有代码框,所以说这时我们需要创建c语言源代码文件。列表中只有c++源代码文件(c++ source file),所以说,只能选择这个,需要把文件扩展名写上.c,否则默认会创建c++源代码文件。
创建完成后,复制粘贴楼主改进后的源代码,然后编译、执行即可
最后的效果:
怎么样?熟悉的对话框是不是又弹出来了?[滑稽]
2026年07月01日 09点07分 2
吧务
level 11
松鼠qwe2 楼主
可以看到,在virtualbox虚拟机的xp sp3系统下不装任何运行库能够直接运行。上次那个用vs2005编写的helloworld在xp上打开报错:由于应用程序配置不正确,应用程序未能启动……,所以说可能需要安装vcredist运行库才能运行,具体版本可能是2002、2003、2005。
2026年07月01日 09点07分 3
吧务
level 11
松鼠qwe2 楼主
好消息,在windows nt4.0上也可以完美运行!需要使用ultraiso把编译后的helloworld程序打包成iso文件,然后使用virtualbox加载此iso文件就行。
2026年07月01日 10点07分 4
吧务
level 11
松鼠qwe2 楼主
目前还没测win9x能否运行
2026年08月05日 10点08分 5
吧务
level 11
松鼠qwe2 楼主
然后我改进了,源代码如下,增添了if else选项,改进后的源代码如下:
#include "stdafx.h"
#include<windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
int nSel = MessageBoxA(NULL,"Hello world!\n","Information\n",MB_YESNOCANCEL|MB_ICONINFORMATION|MB_DEFBUTTON1);
if(nSel == IDYES){}
else if(nSel==IDNO){}
else if(nSel==IDCANCEL){}
return 0;
}
2026年08月05日 10点08分 6
吧务
level 11
松鼠qwe2 楼主
改进后编译并运行成功,效果如下:
2026年08月05日 10点08分 7
吧务
level 11
松鼠qwe2 楼主
如果在if else选项里面写接下来要弹出的对话框,这样我们就做好了一个简单的嵌套对话框程序!源代码如下:
#include "stdafx.h"
#include<windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
int nSel = MessageBoxA(NULL,"Hello world!\n","Information\n",MB_YESNOCANCEL|MB_ICONINFORMATION|MB_DEFBUTTON1);
if(nSel == IDYES){MessageBoxA(NULL,"yes!\n","Information\n",MB_OK|MB_ICONINFORMATION);}
else if(nSel==IDNO){
MessageBoxA(NULL,"no!\n","Information\n",MB_OK|MB_ICONINFORMATION);}
else if(nSel==IDCANCEL){}
return 0;
}
2026年08月05日 10点08分 8
吧务
level 11
松鼠qwe2 楼主
效果如下:如果选择ok,则弹出yes对话框;如果选择no,则弹出no对话框;如果选择cancel,则退出(什么也不弹出)。
2026年08月05日 10点08分 9
看来微软自带自动翻译或mui功能[滑稽]
2026年08月05日 10点08分
吧务
level 11
松鼠qwe2 楼主
如果不想要烦人的提示音效,可以在源代码中删除|MB_ICONINFORMATION这一句,注意要删掉前面的竖线。
2026年08月07日 09点08分 11
吧务
level 11
松鼠qwe2 楼主
这个吧也太冷清了吧,这几天就我一个人在发言,不知道别人都去哪了。。。。。。
2026年08月07日 09点08分 13
1