
c/c++
c++ qt duilib
黑贝是条狗
活下去
展开
-
c++ ole直连sqlserver参数化语句防注入
以前写程序,安全性从来没注意过,最近搞web,接触到一些安全的东西。原创 2025-04-28 17:30:38 · 38 阅读 · 0 评论 -
string、const char*、 char* 、char[]相互转换(全)
3、 char*变constchar*容易,const char*变char*麻烦。//char[]类型转const char* 类型。//const char*类型转char*类型。转载 2025-02-28 15:46:51 · 135 阅读 · 0 评论 -
win11 cmake编译vtk 报The system is: Windows - 10.0.22000 - AMD64
此时可能是cmake版本太低了,开始是3.19,后升级cmake到3.30后成功编译。原创 2025-02-05 13:31:30 · 192 阅读 · 0 评论 -
Rad Studio 12.2 出来了
在12.2中,Dex文件的压缩选项和本地库文件的压缩选项、Android宣言文件的targetSdkVersion的设置、Android库(“。RAD Studio 12.1之后5个月,RAD Studio 12之后10个月,新发布的RAD Studio12.2加入了客户的反馈,利用人工智能能力的编码支持,64-bit版本的编译器等先进的功能,为应用开发提供更强有力的支持。RAD Studio / Delphi / c++ Builder 12.2的所有功能的列表请查看这里的功能列表(PDF)。原创 2024-10-12 11:26:09 · 1147 阅读 · 0 评论 -
c++ json快速解析利器
Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocksJSON is everywhere on the Internet. Servers spend a *lot* of time parsing it. We n原创 2024-08-15 08:38:48 · 464 阅读 · 0 评论 -
HEAP CORRUPTION DETECTED:after Normal block错误方法解决
/ 拷贝函数默认会在末尾添加一个’\0’字符,在此处你仅仅申请了3个字节的空间,但你实际使用的空间为4个字节。// strcpy拷贝时末尾默认会添加一个'\0'字符, 所以实际使用的内存空间为4个字节,超出了申请的内存空间大小,为后来的内存释放埋下了巨大的隐患。在往ptr指向的3个字节的堆内存空间,写入超过一个字节的内容时, vs2010中的编译器并不会报错, 但是为后面的内存释放埋下个巨大的隐患。产生该问题的原因是:你实际使用的内存大小超出了你实际申请的内存大小,在释放内存的时候就会发生该问题。转载 2024-07-05 17:08:42 · 380 阅读 · 0 评论 -
stable-diffusion.cpp 文字生成图片
SDXL 中的 VAE 在 FP16 下遇到 NaN 问题,但不幸的是,ggml_conv_2d仅在 FP16 下运行。- 基于 [ggml](https://github.com/ggerganov/ggml) 的普通 C/C++ 实现,工作方式与 [llama.cpp](https://github.com/ggerganov/llama.cpp) 相同。链接:https://pan.baidu.com/s/1QQoiyqrApEeLGNhzZ9VNsw。用了10分钟左右生成。原创 2024-06-13 09:37:19 · 501 阅读 · 0 评论 -
kbengine游戏服务端框架
服务端底层框架使用c++编写,游戏逻辑层使用Python(支持热更新),开发者无需重复的实现一些游戏服务端通用的底层技术, 将精力真正集中到游戏开发层面上来,快速的打造各种网络游戏。KBEngine是一款开源的游戏服务端引擎,使用简单的约定协议就能够使客户端与服务端进行交互, 使用KBEngine插件能够快速与(Unity3D, OGRE, Cocos2d, HTML5, 等等)技术结合形成一个完整的客户端。原创 2024-05-08 14:31:34 · 964 阅读 · 0 评论 -
使用InnoSetup实现Setup安装程序界面美化
之前我写过一篇《Unity发布PC版,使用Inno Setup制作安装程序》,建议先看那一下那篇文章。今天,我要讲讲通过InnoSetup如何实现Setup安装程序的界面美化。类型数值范围占字节数格式shortint-128 ~ 1281带符号 8 位inteter2带符号 16 位longint4带符号 32 位byte0 ~ 2551带符号 8 位word0 ~ 655352带符号 16 位例:12345varbegin。转载 2024-01-31 16:32:46 · 5740 阅读 · 0 评论 -
FFmpeg简易播放器的实现——音视频播放(含音视频同步)
播放声音的时候变快或者变慢解决办法:当我们打开音频设备的时候,大部分代码用的都是SDL_OpenAudio,该函数总算打开ID 1.改为调用SDL_OpenAudioDevice。因为有些设备默认音频设备不是1.请注意二者的区别。转载 2024-01-25 16:46:51 · 1030 阅读 · 0 评论 -
c++ oatpp编译与demo创建
将oatpp下的src文件copy到oatpp,注意结构,不然编译时找不到相关文件。文件结构如下,将oatpp.lib与oatpp-test.lib 放入lib文件夹。vs2022 打开 oatpp.sln 然后编译,生成静态连接库。附加包含目录为刚编译的oatpp src文件夹。创建一个demo 在oatpp_test_1。cmake 选择 源码目录与生成目录。vs2022编译Oatpp。附加库目录为lib文件夹。创建build文件夹。原创 2023-12-20 11:16:12 · 1702 阅读 · 0 评论 -
基于Cmake+QT+VS的C++项目构建开发编译简明教程
目前项目是尽量利用开源项目为基础,考虑到跨平台,以及后期便于开发的协同和延续,开发语言基于C/C++、UI基于QT(5.7.1),集成开发环境(IDE)使用Visual Studio(2015),开发阶段基于Windows(WIN10)操作系统(32位 or 64位,如果内存大于4G,建议选64位),项目构建工具使用Cmake。转载 2023-12-12 15:49:30 · 574 阅读 · 0 评论 -
浅谈 Windows Syscall
其具体含义是先解析 Ntdll.dll 的 导出地址表 EAT,定位所有以 “Zw” 开头的函数,将开头替换成 “Nt”,将 Code stub 的 hash 和地址存储在 SYSCALL_ENTRY 结构的表中,存储在表中的系统调用的索引是SSN(System Service Numbers,系统服务编号)。内核中包含了大部分操作系统的内部数据结构,所以用户模式下的应用程序在访问这些数据结构或调用内部Windows例程以执行特权操作的时候,必须先从用户模式切换到内核模式,这里就涉及到系统调用。转载 2023-10-27 11:09:33 · 584 阅读 · 0 评论 -
mfc程序发布时带上必要的dll
但如果到其他windows机器运行会报错,提示几个dll库文件找不到。不要慌,问题不大,不要盲目去下载dll,或到c盘windows下找,看自己程序是啥版本,然后到 报错机器装下就ok了。mfc在开发机器上,运行时没问题的,有两个包,一个x86,一个x64。1,最好release后发布,完全没必要,找到也许还是报错。2,找到库文件的安装包。我用的是vs2022。原创 2023-08-02 17:52:05 · 300 阅读 · 0 评论 -
DirectShow摄像头和虚拟摄像头
DirectShow(简称 DShow) 是一个 Windows 平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。支持使用 WDM 驱动或早期的 VFW 驱动来进行多媒体流的采集。横跨WINXP,WIN7,WIN8,WIN10,适配性好,稳定性高。DirectShow位于应用层中。它使用一种叫Filter Graph的模型来;参与数据处理的各个功能模块叫Filter;各个Filter 在Filter Graph中按一定的顺序连接成一条"流水线"协同工作。转载 2023-07-21 18:10:18 · 1502 阅读 · 0 评论 -
c++ dll中获取自身路径
dll中,如果要写文件,读配置等,也要获取路径。原创 2023-07-05 18:13:33 · 415 阅读 · 0 评论 -
详解三大编译器:gcc、llvm 和 clang
回顾 GCC 的历史,虽然它取得了巨大的成功,但开发 GCC 的初衷是提供一款免费的开源编译器,仅此而已。可后来随着 GCC 支持了越来越多的语言,GCC 架构的问题也逐渐暴露出来。但 GCC 到底有什么问题呢?LLVM 的优点也正是 GCC 的缺点。传统编译器工作的时候前端负责解析源代码,检查语法错误,并将其翻译为抽象的语法树(Abstract Syntax Tree)。优化器对这一中间代码进行优化,试图使代码更高效。转载 2023-06-21 08:55:16 · 1569 阅读 · 0 评论 -
HBITMAP与BITMAP 的区别 BMP图像的格式
当图像存储的是非压缩数据的时候,它的取值可以为0,实际上,此时位图数据的大小可以通过biBitCount,biWidth,biHeight等计算出来。以下不是转载 而是个人理解 不对请指正:注意上面得到的bm是hBmp的信息 它表示的是hBmp的固有属性 假如它是与你的屏慕兼容的bmp 那么hBmp的信息记录的是屏幕位图的信息 不会改变。也就是说,从文件中最先读到的是图像最下面的左边第一个像素,然后是左边第二个像素,接下来是倒数第二行左边第一个像素,左边第二个像素,依次类推。转载 2023-06-10 11:02:17 · 646 阅读 · 0 评论 -
C++ MAKEFOURCC函数代码示例
本文整理汇总了C++中的典型用法代码示例。如果您正苦于以下问题:C++ MAKEFOURCC函数的具体用法?C++ MAKEFOURCC怎么用?C++ MAKEFOURCC使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。在下文中一共展示了的15个代码示例,这些例子默认根据受欢迎程度排序。转载 2023-06-07 22:23:13 · 590 阅读 · 0 评论 -
非页面内存泄漏
分页管理器把地址空间划分成4K大小的页面(非Intel X86体系与之不同),当进程访问某个页面时,操作系统首先在Cache中查找页面,如果该页面不在内存中,则产生一个缺页中断(Page Fault),进程就会被阻塞,直至要访问的页面从外存调入内存中。但是调用了海康大华的sdk连接镜头。非分页内存增加,而不是应用层内存增加,则很可能是sdk有内核层的代码出现内存泄露,而调试方法你大可以用windbg来双机调试,当然,不应当在生产机器上,可以在虚拟机中同样执行这些程序,通过windbg来详细调试的。转载 2023-06-01 08:45:37 · 1025 阅读 · 0 评论 -
C++虚函数与虚表
继承(inheritance)类与类之间构成了层次。层次的根部为基类,其他从层次直接或间接继承的成为派生类。在C++中,基类将类型相关的函数与派生类直接继承的函数区别对待。对于希望派生类有各自定义适合自身版本的函数,基类会将其声明为虚函数(virtual)。动态绑定(dynamic binding)动态绑定允许我们使用同一变量分别处理基类和派生类。动态绑定为运行时绑定,在使用基类的引用调用一个虚函数时发生。动态绑定实现了程序的多态性。在定义基类时,应该定义一个虚析构函数。转载 2023-05-05 14:19:48 · 87 阅读 · 0 评论 -
vs2022 mfc 预编译头pch.h
其中#import "..\\debug\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")我们可以把一些全局参数变量,常量放到这里。是mfc连接mssql的库文件地址。好像是2017还是2015开始。pch.cpp中定义变量,常量。预编译头换成了pch.h。这样在工程里,随便用啦。原创 2023-03-09 17:39:50 · 502 阅读 · 0 评论 -
c++ mfc 动态创建按钮
4,消息映射,找到窗口类cpp中的 BEGIN_MESSAGE_MAP。.h文件中 定义一个 点击触发的事件过程。1,在.h文件中 定义一个按钮指针。2,cpp中初始化函数里创建按钮。在.cpp中实现过程。原创 2023-03-09 17:14:30 · 1000 阅读 · 0 评论 -
windows10 qt5.15在线安装
4,管理员模式运行qt在线安装工具。3,打开fiddler,设置代理。1,下载qt在线安装工具。2,下载fiddler。原创 2023-03-09 16:35:10 · 915 阅读 · 0 评论 -
QRandomGenerator: No such file or directory
后好得知,QRandomGenerator类是qt5.10中才有,我自己qt的版本是5.9,没办法,只能升级qt,才能编译。构建一个工程,报这个错,原创 2023-03-04 21:32:52 · 1714 阅读 · 0 评论 -
C++ 与 Python相互调用
pybind11就提供了在C++端手动释放GIL锁的接口,因此,我们只需要将密集计算的部分代码,改造成C++代码,并在执行前后分别释放/获取GIL锁,Python算法的多核计算能力就被解锁了。Pybind11 通过 C++ 编译时的自省来推断类型信息,来最大程度地减少传统拓展 Python 模块时繁杂的样板代码, 且实现了常见数据类型,如 STL 数据结构、智能指针、类、函数重载、实例方法等到Python的自动转换,其中函数可以接收和返回自定义数据类型的值、指针或引用。转载 2023-03-03 18:00:11 · 2847 阅读 · 0 评论 -
Qt qml标记语言试用
运行原理应该也差不多,html在浏览器内解析绘制,qml则由qt解析绘制。效果是出来了,我用了下输入框,左键右键 单击双击,什么事件也没发生,第一次见qml,感觉很溜,但真正用的时候,发现你要做的事情太多了。本想搭个android环境试下手机app开发,如非用qml不可,我应该不会选择它做app开发。如果用flutter,那爽的一批,效果也好,我想弹出右键菜单,复制,粘贴,还是自己实现。但用了下qml,感觉应该会放弃。配合Rectangle一起使用。如我想选中所有文字,自己实现。qml类似html,原创 2023-02-28 09:47:11 · 115 阅读 · 0 评论 -
qt 常用2d画图操作
paintEvent事件里进行,qt控件都是实时画出来的。然后再cpp里实现画图。原创 2023-02-26 11:14:03 · 131 阅读 · 0 评论 -
Github上的一些高分Qt开源项目
功能很完善且跨平台支持做得很好的音乐播放器,完成度高,跨平台项目可以参考它。著名的TileMap编辑器,做2D游戏开发的一定不会陌生。, Jason Qt Tools 的简称。(Qt开发的Markdown编辑器)基于XMPP 协议的聊天客户端。产品级的开源作品,值得研究。产品级的开源作品,值得研究。(Qt版的fiddler)Go语言的集成开发环境。:(UI封装,国人作品)Qt开发的Web浏览器。功能强大的IM客户端。转载 2023-02-18 19:20:06 · 1970 阅读 · 0 评论 -
QT 开源类库集合
longscroll-qt还提供了一个完全可自定义的导航器小部件,该小部件显示在两行之间,从而创建了一个完整的类似google-images的视图。使您可以使用功能齐全的窗口停靠系统来创建可自定义的布局,该系统类似于许多流行的集成开发环境(IDE)(例如Visual Studio)中的系统。QicsTable小部件具有广泛的打印功能,包括以与屏幕上的表格显示不同的视觉特征打印表格的功能。除了2D图的框架外,它还提供刻度,滑块,刻度盘,指南针,温度计,轮和旋钮,以控制或显示double类型的值,数组或范围。转载 2023-02-18 18:13:02 · 1647 阅读 · 0 评论 -
c++ stack around the variable “ “ was corrupted
出现这个错误,是数组长度不够。很久没玩c++,快忘了。原创 2023-02-14 21:21:40 · 277 阅读 · 0 评论 -
qt源码在线查找
:intersected的实现过程。最近在学习pathdata,想查看。原创 2022-10-24 16:45:03 · 195 阅读 · 0 评论 -
qt 使用sleep防假死
usleep 微秒 1000微秒=1毫秒 1000*1000 = 1秒。原创 2022-10-21 11:34:10 · 439 阅读 · 0 评论 -
使用SDL2显示一张图片
显而易见,从绘图哲学的角度看,SDL/OpenGL/Direct3D所采用的绘图方式,显然更适合3D类绘图、动画的加速,那么这种技术对平面绘图,比如就是单纯的视频播放,是如何加速的呢?这两类系统往往不是独立存在的,比如举例说一个视频播放器,播放器的窗口界面、菜单、文件打开等界面和操作,都是由界面管理器比如Windows上的MFC或者Mac上的Cocoa来完成的,到真正视频播放的环节,在窗口中给定的区域,则是由SDL、OpenGL、Direct3D出马,完成视频的逐帧绘制的功能。转载 2022-09-16 09:45:22 · 582 阅读 · 0 评论 -
Qt中运行后台线程不阻塞UI线程的方案
Qt中运行后台线程不阻塞UI线程的方案 - 走看看有一个想法,一个客户端,有GUI界面的同时也要向网络服务器发送本地采集的数据,通过网络发送数据的接口是同步阻塞的,需要等待服务器响应数据。如果不采用后台线程的方案,用主UI线程关联一个定时器QTimer来做定时任务发送,那么GUI界面会由于定时器事件响应的槽函数的阻塞,导致整个GUI的按钮事件在某些时刻无法及时响应,会有卡顿的情况。所以,后台需要运行一个后台线程,与主线程分离,并且该后台线程需要关联一个自己的QTimer,来做定时任务数据采集。方案其实可以用转载 2022-06-13 22:22:42 · 2027 阅读 · 0 评论 -
qt 生成系统托盘,加载图标
1,下载ico图标文件 favicon.ico2,新建txt文件,加入一行 IDI_ICON ICON DISCARDABLE "favicon.ico"重命名为res.rc资源文件3,工程文件中加入资源4,重新构建,此时exe加上了图片5,右键工程 添加资源文件添加前缀 /添加资源ico6,进入设计模式,选中主窗口,添加资源文件7,重新构建,此时任务栏图标出现---------托盘生成与托盘图标,.pr...原创 2022-05-26 14:51:06 · 924 阅读 · 2 评论 -
c++ char* 与 wchar_t* 互转
char dd[256]; const wchar_t* wc = L"Hellow World"; sprintf(dd, "%ws", wc); //wchar_t* 转 char* MessageBoxA(NULL, dd, "test", 0); TTestClass tt; const char *aa ="helloworld"; wchar_t bb[100]; swprintf(bb, 100, L"%hs", tt.Get...原创 2022-03-24 11:50:47 · 1394 阅读 · 0 评论 -
c++的char与byte
c++的char和byte都是一个字节byte = unsigned of char如果我们要把一个中文字符存入char,则必须用char数组因为一个中文占用3个字节int main(){ byte a[3] = {0}; //长度为3的byte数组 int c,f = 0; char b[3] = {"中"}; //把中字存入到char数组 wchar_t d = '中';//也可用wchar c = sizeof(b)*sizeof(char)原创 2022-03-22 08:50:35 · 3417 阅读 · 0 评论 -
qt 在windows上发布exe应用
qt debug或者release 编译好应用后,只是一个exe文件,执行会报缺少一堆dll如果发布?1,首先确定你是什么编译器编译的mingw32还是mingw64,或者是msvc32或642,找到编译器路径下的windeployqt.exe3,打开qt命令行,命令行也对应编译器,如下:4,执行命令windeployqt D:\OldComputer\git\qt\HelloWorld\build-HelloWorld-Desktop_Qt_5_9_5_MinGW_32bi原创 2022-03-02 22:01:30 · 670 阅读 · 0 评论 -
Qt中创建ActiveX应用
由于最近需要使用ActiveX,一般来说可以使用微软提供的MFC或者ATL框架来开发,由于我个人对这部分内容不是很熟悉,好在Qt也提供对于ActiveX的支持。本文主要记录个人学习ActiveX的一些内容,方便日后查阅。本文以Qt5(5.3.1)提供的ActiveX为参考,但是由于ActiveX这部分比较稳定,因此Qt4应该也是一样的。概述Qt提供了QtActiveX模块来支持微软ActiveX的开发,Qt的ActiveX和COM的开发支持两种方式:支持将已有的COM或者ActiveX空间转载 2022-02-16 14:45:30 · 1833 阅读 · 0 评论