正文开始前推荐去阅读的文章,感兴趣的去阅读哦!
今日推荐:为什么网站安装SSL证书后HTTPS还是不能访问
推荐链接:https://cloud.tencent.com/developer/article/2465228
推荐原因:本文详细说明了自己安装了SSL证书后还是报错,下面我来说一下我的解决办法。
VC++6.0入门——第一讲,认识VC++6.0,新建工程等
接触过Windows编程方法的读者都知道,在应用程序中有一个重要的函数WinMain,这个函数是应用程序的基础。当Windows操作系统启动一个程序时,它调用的就是该程序的WinMain函数(实际是由插入到可执行文件中的启动代码调用的)。WinMain是Windows程序的入口点函数,与DOS程序的入口点函数main的作用相同,当WinMain函数结束或返回时,Windows应用程序结束。
比如加入一个程序变量
设置一个断点,鼠标右键,加入断点
采用调试运行F5快捷键,或者点击图示图标
程序运行的时候,接收到了命令行参数
点击图示按钮,可以停止程序调试
关于程序运行时的图标,可以参考下面进行设置
去掉最小化窗口的按钮
WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX
窗口创建时的位置,缺省值表示自己找一个位置
15~21行代码:当用户在窗口中按下鼠标左键时,将产生WM LBUTTONDOWN消息。为了证实这一点,我们在WM LBUTTONDOWN消息的响应代码中,调用MessageBox函数弹出一个提示信息,告诉用户“点击了鼠标”。接下来,我们在窗口中(0,50)的位置处输出一行文字。要在窗口中输出文字或者显示图形,需要用到设备描述表(Device Context),简称DC。DC是一个包含设备(物理输出设备,如显示器,以及设备驱动程序)信息的结构体,在Windows平台下,所有的图形操作都是利用DC来完成的。
LINK : fatal error LNK1168: cannot open Debug/WinMain.exe for writing
表示当前在运行一个没法继续运行
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
// 1.设置了一个窗口,定义窗口的一些信息
WNDCLASS wndcls; // 窗口实例
wndcls.cbClsExtra=0; // 窗口附加内存空间,通常设置为0
wndcls.cbWndExtra=0; // 通常用不上,设置为0即可
// 进行强制类型转换
wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); // 窗口的背景颜色
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); // 光标句柄,这里光标就是十字 cross
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); // 图标句柄,这里就是一个error
wndcls.hInstance=hInstance; // 代表当前应用程序的实例号
wndcls.lpfnWndProc=WinSunProc; // 回调函数
wndcls.lpszClassName="sunxin2006"; // 类的名字
wndcls.lpszMenuName=NULL; // 没有菜单
wndcls.style=CS_HREDRAW | CS_VREDRAW; // 水平和垂直坐标变化,窗口重画
RegisterClass(&wndcls); // 注册窗口类,把窗口类的指针给他
HWND hwnd; // 窗口的句柄
// 注册的类名,WS_OVERLAPPEDWINDOW同时有了最大化,最小化按钮等
hwnd=CreateWindow("sunxin2006","跟着大佬学习VC++",
WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX /*& ~WS_MINIMIZEBOX */,
0,0,600,400,NULL,NULL,hInstance,NULL);
// 显示窗口,正常显示normal
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
// 消息队列
MSG msg;
while(GetMessage(&msg,NULL,0,0)) // 0表示所有信息都感兴趣
{
// 按键的按下和抬起,转化成WM_CHAR,放到消息队列中
TranslateMessage(&msg);
// 将消息路由给操作系统,操作系统给wndcls.lpfnWndProc=WinSunProc; // 回调函数进行处理
DispatchMessage(&msg);
}
return msg.wParam;
}
// 回调函数
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter 都是整数
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_CHAR: // 用户按下了按键
char szChar[20];
// sprintf,格式化文本放到字符数组中
sprintf(szChar,"char code is %d",wParam);
MessageBox(hwnd,szChar,"char",MB_YESNO);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
// 在哪里画图
hdc=GetDC(hwnd);
// 参数:在哪里,位置,输入文字,文字长度
TextOut(hdc,0,50,"程序员之家",strlen("程序员之家"));
// 释放DC,
ReleaseDC(hwnd,hdc);
break;
// 窗口大小发生变化
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
// BeginPaint 和 EndPaint 是一对,只能用在WM_PAINT中
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"http://www.sunxin.org",strlen("http://www.sunxin.org"));
EndPaint(hwnd,&ps);
break;
// 窗口关闭的时候的消息
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
// 对其不感兴趣的进行缺省处理
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
1.启动Microsoft Visual C++6.0,单击【File】菜单,选择【New】菜单项,在“Projects”选项卡下,选择“Win32 Application”,在右侧的“Project name:”文本框中,输入我们的工程名WinMain(如图1.4所示),单击【OK】按钮。
2.在Win32 Application-Step1of1中,选择“An empty project”(如图1.5所示),单击【Finish】按钮。
3出现一个工程信息窗口,单击【OK】按钮,这样就生成了一个空的应用程序外壳。
4.这样的应用程序外壳并不能做什么,甚至不能运行,我们还要为它加上源文件。单击【File】菜单,选择【New】,在“Files”选项卡下,选择“C++Source File”,在右侧的“File”文本框中,输入源文件的文件名WinMain(如图1.6所示),单击【OK】按钮.
VC++6.0入门——第一讲,认识VC++6.0,新建工程等
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。