C++:win11下的VScode构建百度Comate

一.  VScode的安装

  • 官网下载地址https://code.visualstudio.com/  (选择好对应的系统版本)
  • 汉化:安装完软件后,打开软件界面的"扩展商店",搜索Chinese,下载相应的插件,如下图:

二.  配置C++开发环境

  VSCode只是一个高级的编辑器,可以用来写C++代码,不能直接编译代码。所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。为了方便,我们就使用MinGW-w64windows平台的一个gcc编译器。

  1.配置gcc编译器

    • 配置环境变量:下载完成后,可以解压到指定的目录(目录名尽量不要带中文),bin目录下集成了编译器的集成程序。

    • 验证gcc配置成功:打开"命令行", 输入如下:

  2. 安装C/C++插件

    

  3.  配置g++编译器

    • 打开目标文件:先打开一个C++工程文件夹,如下图:

    • 配置步骤:鼠标的光标点在test.cpp文件里,然后"ctrl + shift + p"呼出"C/C++:编辑配置(UI)",进去配置如下图:

    • 配置(具体的某个)工程的参数配置:点击"终端"--"配置任务"--"C/C++g++.exe生成活动文件",生成如下文件,文件里添加了C++配置信息:

    • 编译代码:点击"终端"--"运行生成任务",生成*.exe文件,如下图

  4.调试代码

    • 配置方法如下图,:配置完成后就可以像vs20xx一样,使用F5F9等调试代码了。

路径宏 注释
workspaceRoot VSCode中打开文件夹的路径
workspaceRootFolderName VSCode中打开文件夹的路径, 但不包含"/"
file 当前打开的文件
relativeFile 当前打开的文件,相对于workspaceRoot
fileBasename 当前打开文件的文件名, 不含扩展名
fileDirname 当前打开文件的目录名
fileExtname 当前打开文件的扩展名

 

    • 测试代码     
 1 #include <windows.h>
 2 #include "CommCtrl.h"
 3 
 4 #define IDC_BTN_TEST (101)
 5 
 6 //窗口过程函数 
 7 LRESULT CALLBACK pfnWndProc(HWND stHwnd, UINT uiMsg, WPARAM wParam, LPARAM lParam)
 8 {
 9     RECT stRect = { 0 };
10 
11     //WM_窗口消息
12     //WM_COMMAND:控件消息,看下文button按钮的创建可知,控件本身也是窗口,为了区别于主窗口消息,将控件的窗口消息进行封装放在wParam参数里
13     //WM_NOTIFY:对WM_COMMAND进行扩展
14     switch (uiMsg)
15     {
16     case WM_CREATE:
17         GetClientRect(stHwnd, &stRect);
18         CreateWindow(WC_BUTTON, TEXT("创建button按钮"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, (stRect.right - stRect.left) / 2 - 60, (stRect.bottom - stRect.top) / 2 - 15, 120, 30, stHwnd, (HMENU)IDC_BTN_TEST, nullptr, nullptr);
19         break;
20     case WM_LBUTTONDOWN:
21         MessageBox(nullptr, TEXT("按下鼠标左键"), TEXT("鼠标测试"), MB_OK);
22         break;
23 
24     case WM_KEYDOWN:
25         MessageBox(nullptr, TEXT("按下键盘"), nullptr, MB_OK);
26         break;
27     case WM_COMMAND:
28         if ((IDC_BTN_TEST == LOWORD(wParam)) && (BN_CLICKED == HIWORD(wParam)))//button按钮测试
29         {
30             MessageBox(NULL, TEXT("Button被按下"), TEXT("Button测试"), MB_OK);
31         }
32         break;
33     case WM_DESTROY:
34         PostQuitMessage(0);
35         break;
36     default:
37         return DefWindowProc(stHwnd, uiMsg, wParam, lParam);
38     }
39     return 0;
40 }
41 
42 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
43 {
44     MSG stMsg = { 0 };
45     HWND stHwnd = { 0 };
46     WNDCLASS stWndClass = { 0 };
47 
48     const TCHAR szAppName[] = TEXT("windowsUI");
49     stWndClass.style = CS_HREDRAW | CS_VREDRAW;
50     stWndClass.lpfnWndProc = pfnWndProc;
51     stWndClass.cbClsExtra = 0;
52     stWndClass.cbWndExtra = 0;
53     stWndClass.hInstance = hInstance;
54     stWndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
55     stWndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
56     stWndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
57     stWndClass.lpszMenuName = nullptr;
58     stWndClass.lpszClassName = szAppName;
59 
60     if (!RegisterClass(&stWndClass))//注册窗口类
61     {
62         MessageBox(NULL, TEXT("Regiester failure"), szAppName, MB_ICONERROR);
63         return 0;
64     }
65 
66     stHwnd = CreateWindow(szAppName, //创建窗口
67         TEXT("windows UI"),
68         WS_OVERLAPPEDWINDOW,
69         CW_USEDEFAULT,
70         CW_USEDEFAULT,
71         800,
72         600,
73         nullptr,
74         nullptr,
75         hInstance,
76         nullptr);
77 
78     ShowWindow(stHwnd, iCmdShow); //显示窗口
79     UpdateWindow(stHwnd);
80 
81     while (GetMessage(&stMsg, nullptr, 0, 0))//消息循环
82     {
83         TranslateMessage(&stMsg);
84         DispatchMessage(&stMsg);
85     }
86 
87     return stMsg.wParam;
88 }
View Code

  5. 关于Comate

      对比java,python来说,就当前的版本,C++被扩展的场景和调试方法还有待优化。

 

posted @ 2024-07-05 21:34  夜不眠  阅读(3)  评论(0编辑  收藏  举报