首页
学习
活动
专区
圈层
工具
发布

WIN32 API —— 最简单的Windows窗口封装类

1 开发语言抉择 1.1 关于开发Win32 程序的语言选择 C还是C++ 在决定抛弃MFC,而使用纯Win32 API 开发Window桌面程序之后,还存在一个语言的选择,这就是是否使用C++...使用不同的开发模式,就相当于使用不同的编程语言。就本人而言,对C++的模板编程也根本没有任何经验。...2 Windows窗口对象的封装类 对Windows桌面程序而言,Window和Message的概念是核心。首先需要封装的就是窗口,例如MFC就是用CWnd类封装了窗口对象。...能用一个Win32API直接实现的功能,绝不进行二次包装,如移动窗口可以使用 MoveWindow()一个函数实现,类中就不要出现同样功能的MoveWindow()函数。...我就是要让HWND句柄到处出现,绝不对其隐藏,因为这个概念对于Windows来说太重要了,开发者使用任何封装类都不应该对其视而不见。

3.1K20

windows下gcc的安装和使用(更新)

最近用到了c,找到之前自己的安装记录,发现阅读量达到了4万多了,说明大家碰到这个问题还是蛮多的。自己重新按照之前的步骤,发现居然报错了。...读者碰到的错误(被我敷衍过去了) ? 今天重新安装一遍解决了这个问题。这里重新更新一下记录。 写在源文件中的源代码是人类可读的源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。...(一).安装 1.为了在 Windows 上安装 GCC,需要到MinGW 的主页 www.mingw.org,进入 MinGW 下载页面,下载最新版本的 MinGW 安装程序。 ?...如果中间出现报错,一般都是服务器终端导致的,重新来一次就可以了,会把我们角色的重新安装。 ? 3.修改环境变量: 安装好之后,是不能直接使用的,还需添加到环境变量。 ?...(二)使用 4.在开始菜单中,点击"运行",输入 cmd,打开命令行:输入 gcc,没有说外部命令,说明安装正常。 然后在桌面创建一个hello.c的测试程序。 ? ?

48.5K52
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    创建可调大小的用户窗体——使用Windows API

    标签:VBA,Windows API 在使用VBA创建用户窗体时,通常会将其设置为特定的大小。然而,通过一些编码技巧,可以为其实现类似的调整大小效果。...ResizeWindowSettings(frm As Object, show As Boolean) Dim windowStyle As Long Dim windowHandle As Long '获取Windows...DrawMenuBar windowHandle End Sub 上面的两个代码段创建了一个可重复使用的过程,可以使用它来打开或关闭调整用户窗体大小的设置。...如果想要能够调整用户窗体大小,使用: Call ResizeWindowSettings(myUserForm, True) 关闭调整用户窗体大小,使用: Call ResizeWindowSettings...cmdCloseBottom As Double Private cmdCloseRight As Double Private Sub UserForm_Initialize() '调用Window API

    1.7K31

    Windows Api学习笔记-动态连接库(DLL)的使用

    12Dll")//要链接到什么库文件 void main() { //CMy12Dll a; cout<<fnMy12Dll()<<endl; char b; cin>>b; } VS2008 新建WIN32...此 DLL 中的所有文件都是用命令行上定义的 MY12DLL_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。...这样,源文件中包含此文件的任何其他项目都会将 // MY12DLL_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。...}; extern MY12DLL_API int nMy12Dll; MY12DLL_API int fnMy12Dll(void); 如何使用刚刚创建的DLL 有两种办法 一: 把DLL,LIB...,和声明导出函数的头文件一起复制到工程文件的主目录下 然后引入头文件 然后就可以想使用自己的函数一样使用动态连接库中的函数了 代码如下  #include windows.h> #include <iostream

    90720

    nodejs使用cmd更新windows服务器上的代码

    记一下使用nodejs更新windows server上的代码 项目依赖 主文件代码 工具使用 注意事项 有个项目是部署在阿里云Windows Server服务器上的,每次更新都需要远程或者ssh上去更新...,比较繁琐就搞了一个nodejs工具去更新代码了 # 项目依赖 项目基于koa开发,需要安装koa-router、node-cmd package.json文件 { "name": "code_upd...nodeCmd = require('node-cmd'); router.get('/', async (ctx, next) => { await next(); ctx.body = '更新代码...cmdTxt); }); } app.use(router.routes()); app.use(router.allowedMethods()); app.listen(7000); # 工具使用...可以用pm2启动server.js,然后就可以通过请求ip:7000/upd来更新代码了 # 注意事项 可能需要在阿里云后台的安全组放行项目使用的端口,不然无法请求到服务地址

    4.1K10

    Windows下线程的创建与使用(win32-API)

    线程还常用于实现并行算法,加快大数据处理、图像渲染等任务的执行速度。 在Windows环境下,C语言可以通过调用Win32 API中的CreateThread函数来创建和管理线程。...二、实操案例 2.1 CreateThread函数 CreateThread函数是Windows API中用于创建新线程的核心函数。在C或C++语言中,可以从一个现有的进程中启动一个新的执行流。...我当前采用的版本是VS2020。 在C语言中使用多线程,尤其是使用Windows API进行多线程编程,涉及创建和管理多个线程来并发执行任务。...最后,使用另一个循环来关闭所有线程的句柄,这是必要的资源清理步骤,以避免资源泄漏。 2.3 案例2:多线程处理并发处理网络请求 开发环境:在Windows下安装一个VS即可。...以下是一个使用C语言和Windows Socket API(Winsock)的示例代码,展示了如何创建一个TCP服务器,该服务器在接收到客户端连接时,为每个客户端创建一个子线程来处理通信。

    48710

    【CSS】使用 z-index 属性值控制定位盒子的堆叠顺序 ( 多个盒子堆叠次序问题 | z-index 属性值简介 | 控制盒子堆叠次序 )

    一、多个盒子堆叠次序问题 ---- 在 网页布局 中 , 如果 多个盒子都设置 绝对定位 , 那么这些盒子会堆叠在一起 ; 设置了定位样式的盒子会压住标准流盒子 , 如果有多个设置定位的盒子 , 后面的盒子会压住前面的盒子...; 下面的代码中 , 三个盒子都设置了绝对定位 , 先设置了蓝色盒子 , 然后设置了 红色盒子 , 最后设置了 紫色盒子 ; 最终展现出来的样式是 紫色盒子 压住了 红色盒子 , 红色盒子压住了 蓝色盒子...属性值简介 ---- 使用 z-index 属性 , 可以设置 堆叠层级 , 数值越大 , 越靠上 ; z-index 属性取值范围 : 负整数 / 正整数 / 0 ; z-index 属性默认值为...0 ; z-index 属性值相同 , 那么按照先后顺序 , 后来的覆盖之前的 ; z-index 属性值的数字后面没有单位 ; z-index 属性 生效的情况 : 相对定位 绝对定位 固定定位 在其它情况..., 如 : 静态定位 , 浮动 , 标准流 下 , z-index 属性无效 ; 三、控制盒子堆叠次序 ---- 这里设置 蓝色盒子 z-index: 3 , 红色盒子 z-index: 2 , 紫色盒子

    2.1K20

    关于opentelemetry-cpp社区对于C++ Head Only组件单例和符号可见性的讨论小记

    这种情况又不太一样,各个模块会直接使用本地的函数,不再从GOT中查找。导致各个模块最终使用的同名变量和函数地址不一样。..., including 64-bit Windows and MinGW, define // _WIN32 or one of its variant spellings....就会导致不同的模块对 单例 对象的引用,使用不同的变量地址,从而失去了 单例 的意义。...而global变量首先的问题是初始化顺序不确定,导致如果多个组件互相依赖的话初始化顺序也是不定的。...当然,有的同学说,我只用Linux/macOS,不用考虑Windows。然而我们做基础性功能库的时候不能定死用户的使用场景和限制使用平台,所以对接口的规范和约定设计会更加偏向保守。

    1.5K30

    如何在Windows系统上使用Object Detection API训练自己的数据?

    前言 之前写了一篇如何在windows系统上安装Tensorflow Object Detection API? 然后就想着把数据集换成自己的数据集进行训练得到自己的目标检测模型。...于是就自己来撸一篇教程,方便自己也给别人一些参考吧~ 目录 基于自己数据集进行目标检测训练的整体步骤如下: 数据标注,制作VOC格式的数据集 将数据集制作成tfrecord格式 下载预使用的目标检测模型...数据标注,制作VOC格式的数据集 数据集当然是第一步,在收集好数据后需要进行数据的标注,考虑到VOC风格,这里推荐使用LabelImg工具进行标注。 ?...下载预使用的目标检测模型 准备好训练数据后,选择模型进行训练,下载官方预训练模型【Github】 对于目标检测,可以考虑选择几种最常用的模型: ssd_mobilenet_v1_coco ssd_mobilenet_v2...训练模型只需要运行object_detection/legacy路径下的train.py程序即可。(当然object_detection API安装是大前提,具体看上一篇文章!)

    2K40

    刘金玉的零基础VB教程073期:windows API使用入门 sleep

    视频讲解: https://v.qq.com/x/page/y09403xlp4p.html 文字讲解: 刘金玉的零基础VB教程073期: windows API使用入门 sleep windows API...Windows操作系统,xp win7 win8 win10 还有操作系统的位数 32位 64位 64位操作系统是兼容32的软件的 系统最初碰到多的32位 Window 32位 API...简称Win32 API API 简单的理解就是接口 接口:对接的口子 Windows API 就是windows操作系统开发的接口 这些接口,用来控制windows系统的 如何入门?...VB6自带windows api的查找工具 可以根据查找的接口,自动生成一个声明语句 1、在菜单目录中找到API Text Viewer 2、导入win32API文本 3、搜索我们需要的API函数,使用...dwMilliseconds As Long) 参数:传入一个毫秒数 课堂总结 1、认识windows api 2、vb中要学会去使用api text viewer 3、可以查看win32 api函数

    1.1K20

    nodejs os模块

    它包含了许多方法和属性,可以用来获取和操作与操作系统相关的信息。 一些常用的os模块方法和属性包括: os.platform():返回当前操作系统的平台。...FreeBSD 先进的网络、安全性和存储方面的特色使得它成为许多 大型网站 以及最普遍的嵌入式网络与存储设备的平台选择。...10 Home China 2.5 使用场景 open方法的实现 使用场景是什么呢?...比如以下的例子就使用到了上方的api // 构建打包工具 里面的Open实现的大概原理 // 判断不同的操作系统,然后调用相对应的shell命令 const platform1 = os.platform...os.loadavg():返回一个包含系统负载平均值的数组。 os.arch():返回当前CPU架构。 os.endianness():返回CPU的字节顺序(大端或小端)。

    46110

    【专业技术第五讲】动态链接库及其用法

    多个应用程序可同时访问内存中单个 DLL 副本的内容。 使用动态链接库可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。...例如,您有一个大型网络游戏,如果把整个数百MB甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库中,您无需重新生成或安装整个程序就可以应用更新...Windows 提供的DLL文件中包含了允许基于 Windows 的程序在 Windows 环境下操作的许多函数和资源。一般被存放在 "C:\Windows\System32" 目录下。...特别调用 关于特定情况下的调用,比如DLL函数中使用到了 Win32 API 或者将 C++ 生成的 DLL 供标准C语言使用,则需要注意以下一些情况: 如果使用到了 Win32 API,则应该使用关键字...下面的代码是一个在 Visual C++ 中通过使用“Win32 动态链接库”项目类型创建的 DLL 的示例。

    1.4K70

    【安富莱原创开源应用第1期】花式玩转网络摄像头之TCP上位机软件实现,高端大气上档次,速度2MBS,华丽丽的界面效果

    做些通信和控制类上位机,比使用C#之类的方便程度一点不差,而且你仅会C语言就可以。...3、并且成功将emWin人性化,可以做些Windows系统上的小应用了,基本完全看不出是emWin做的,而且生成的软件很小,因为是WIN32 API实现的,直接调用win socket api,还是非常爽的...Win32 API编写的软件,最大的好处就是微软的各个系统版本都兼容,而且发布时软件比较小,仅仅一个exe小软件。 4、花式玩转网络摄像头之VNC远程摄像头也实现了,后面整理后也开源出来给大家玩。...使用注意事项: 1、配套的下位机是基于RTX4+RL-TCPnet实现,务必使用MDK4.74进行编译,其它MDK版本未做测试。上位机是用的VC6.0实现的。...  Win32编写的小软件,简单易用 ?

    78230

    使用 .NET 构建 UI 界面的各种方式

    1 .NET Framework 时代的 WinForms 与 WPF Windows Forms 是直接依赖 GDI+ 和 Win32,可以理解为是对 Win32 和 GDI+ 的封装。...可以用到最新的 C# 特性和运行时 API 3 得益于 .NET Core 基础库本身的性能优化,一些操作会获得更好的性能 4 可以使用 dotnet cli 来完成很多 devops 相关的工作...但 UWP 依赖的 Windows Runtime (WinRT) 是直接集成到操作系统中的,如果用户的操作系统没有更新,开发者就无法使用最新的 API,这是一个巨大的依赖问题。...在许多情况下,可以使用 XAML Islands 将现代化 XAML 控件添加到应用。 但是,如果需要创建超越内置控件功能范围的自定义体验,可以访问视觉层 API。...- Microsoft Q&A 甚至,如果你使用 C++ 进行 Win32/MFC 开发,也可以将 WinUI3 嵌入其中,构建更现代的应用。(但或许有什么坑?

    1.8K00

    Salesforce LWC学习(三十五) 使用 REST API实现不写Apex的批量创建更新数据

    (五) https://jeremyliberman.com/2019/02/11/fetch-has-been-blocked-by-cors-policy.html 我们在学习LWC的时候,使用 wire...adapter特别爽,比如 createRecord / updateRecord,按照指定的格式,在前端就可以直接将数据的创建更新等操作搞定了,lwc提供的wire adapter使用的是 User...当然,人都是很贪婪的,当我们对这个功能使用起来特别爽的时候,也在疑惑为什么没有批量的创建和更新的 wire adapter,这样我们针对一些简单的数据结构,就不需要写apex class,这样也就不需要维护相关的...我们在上一篇讲述了标准的rest api,那OK,我们可以尝试不适用后台apex方式去搞定,而是在前台通过rest api去玩一下,说到做到,开弄。...$Api.Session_ID}获取的session id信息和apexclass获取的session id不一致,并且 vf 获取的是可用的。

    2.9K40
    领券