20240410
记录一下事情的开始~~~
搭建开发环境
参考:
https://github.com/OpenVPN/openvpn-gui?tab=readme-ov-file#readme
openvpn-gui/BUILD.rst at master · OpenVPN/openvpn-gui · GitHub
编译器选择vs2022,同时做集成开发环境,
VS2022安装
编程小白必看!Visual Studio 2022详细安装使用教程(C/C++编译器)-CSDN博客
组件对应关系查找:
Visual Studio 生成工具工作负载和组件 ID | Microsoft Learn
VS安装完,开始开发
openvpn-GUI项目是用CmakeList.txt做项目管理的,
VS打开CMake工程:
遇到如下错误:
手动安装vcpkg环境
VS2022中安装vcpkg来使用第三方库gnuplot matplot++,实现简单绘图功能,数据分析_vs2022 vcpkg-CSDN博客
vcpkg配置好,打开CMake工程(CmakeList.txt文件所在目录),VS会主动解析CmakeList文件
然后会进入上图,下载CMake工具包,就开始进入下载各种工具包的阶段(通过vcpkg包管理工具),我开始用公司网络很差,下载几次都失败,后面切换自己手机热点(心疼我的流量),
但也还是很慢,包都好大,
包都下载完,又卡在下面
参考:
使用 CMake 预设进行配置和生成 | Microsoft Learn
最后几经摸索,做了下面工作
然后神奇的,Cmake分析生成vs项目成功了
然后运行项目,
编译失败,继续探索吧
代码熟悉
首先我想要弄懂的是,界面用什么编写的,蛛丝马迹查找,
貌似是用的windows原生的API
TaskDialogIndirect 函数 (commctrl.h) - Win32 apps | Microsoft Learn
史上最“屌”的纯WINAPI界面编程学习笔记-纯WINAPI、纯C语言进行界面编程,不是MFC或者ATL_winapi 界面开发-CSDN博客
开始代码学习
C++ 中main函数 wmain函数 _tmain函数与WinMain函数 wWInMain函数 _tWinMain函数的区别-CSDN博客
再次坐实,该软件是Windows API界面+C底层逻辑实现,
MessageBoxEx用法:
一个可携带附加消息的增强消息框MessageBoxEx_C#教程_脚本之家
现在有点小思考,是系统的学一下Windows API呢,还是代码里用到啥学啥再去看再去学呢,
编译遇到的问题以及解决方法:
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失-CSDN博客
VS2022 warning C4828: 文件包含在偏移0x处开始的字符,该字符在当前源字符集中无效(代码页)_warning c4828: 文件包含在偏移 0x60 处开始的字符,该字符在当前源字符集中无效(-CSDN博客
windows的rc资源文件
开发中
1.先做登录页面
1)rc资源添加登录页面内容(注意多语言,多个语言的资源文件里都要添加)
win api和MFC区别:
目前问题
目前编译还没通过呢,有错误,可能是环境哪里配置不对或者是没配置到位,猜测啊,