自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序区

一个程序员的站点,www.progdomain.com

  • 博客(72)
  • 资源 (5)
  • 收藏
  • 关注

原创 pybind11 导出 C++ map 在 Python 层 get 访问慢的优化方案

摘要:pybind11导出C++ map在Python中访问慢的主要原因是频繁跨越Python/C++边界。优化方案包括:1) 批量查找减少调用次数,实现C++方法批量返回key对应的value;2) 对不频繁变化的map一次性拷贝到Python层;3) 使用to_dict缓存机制,首次转换后缓存结果,数据变更时清空缓存。这些方法可显著提升高频访问场景下的性能。

2025-07-04 18:35:23 53

原创 python调用pybind11导出的pyd,出现UnicodeDecodeError

最终我们在include/pybind11/cast.h中找到了string_caster,并进行了修改!具体修改参考以下代码中的"load修改部分"和"cast修改部分"。**进行以下修改后,其他地方不用进行任何修改!**对比上一种方法,工作量要小得多。举个例子,当有以下C++代码以及Pybind11的绑定代码时,在python访问包含中文的Name和Value会有。中所介绍的,它内置了一些类型转换。我们只需要找到这个转换的代码进行修改即可。显式转换与隐式转换具有相同的开销。如果某些 C++代码构造的。

2025-07-04 18:06:12 39

原创 QTreeView设置显示连接线

在QTreeView中设置显示连接线有两种主要方法。第一种是应用Windows风格,通过调用ui->treeview->setStyle(QStyleFactory::create("windows"));实现,但这种方法会影响其他QSS的生效且视觉效果不佳。第二种方法是自定义QSS,通过定义不同的分支样式来显示连接线,例如使用border-image和image属性来设置不同状态下的分支图标。这种方法更为灵活且不影响其他样式,具体实现可参考Qt官方文档中的样式表示例。

2025-05-16 16:33:59 260

原创 MFC自定义控件开发与使用指南

MFC(Microsoft Foundation Classes)框架提供了丰富的内置控件,但在实际开发中,我们常常需要创建自定义控件来满足特定的界面需求。本文将详细介绍如何在MFC中开发自定义控件,并以CCustomTextControl为例,展示自定义控件的实现和使用方法。

2025-05-03 19:29:06 1254

原创 KeyPresser 一款自动化按键工具

KeyPresser 是一款自动化按键工具,它可以与窗口交互,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程序提供“开始”和“停止”按钮来启动和终止按键发送过程。时间间隔最小值、最大值相同时,将以固定的时间间隔触发时间间隔最小值、最大值不同时,将在最小、最大值之间生成随机时间间隔触发。

2025-05-03 18:07:08 1654

原创 pybind11 使用指南+示例

pybind11 是一个轻量级的仅头文件C++库,用于在Python和C++之间创建无缝的接口。pybind11特别适合需要将高性能C++代码暴露给Python使用的场景,同时保持代码的简洁性和可维护性。

2025-04-30 18:19:18 523

原创 Python GIL 与 pybind11 GIL管理机制

全局解释器锁(Global Interpreter Lock, GIL)是Python解释器中的一个互斥锁,它确保任何时候只有一个线程在执行Python字节码。

2025-04-30 17:54:44 535

转载 C++到C#核心语法对照指南

public:set;");

2025-02-07 17:34:38 400

转载 如何下载安装Qt各个版本?(2025-4-28更新)

本文将教您快速获取Qt各版本安装包!妈妈再也不用担心我找不到Qt安装包了!

2024-11-01 15:46:50 2108

原创 QComboBox 设置下拉框在上方显示

QComboBox 设置下拉框在上方显示

2024-09-26 18:07:57 571

原创 windows实现自动化按键

KeyPresser 是一款免费的自动化按键工具,它可以与窗口交互,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程序提供“开始”和“停止”按钮来启动和终止按键发送过程。

2024-07-16 14:44:14 3650

原创 MFC GDI绘制卡通人物

【代码】MFC GDI绘制卡通人物。

2024-06-22 00:52:36 916 2

原创 MFC绘制哆啦A梦

【代码】MFC绘制哆啦A梦。

2024-06-18 15:58:40 1169

原创 ObjectARX打印当前图纸为PDF,无延迟(亲测有效)

【代码】ObjectARX打印当前图纸为PDF(亲测有效)

2024-06-09 20:55:09 723

原创 FinnConverter格式转换工具

支持word转pdf;ppt转pdf;raw格式转png/jpng…;其他格式相互转换。

2024-05-14 19:49:05 565

原创 ObjectARX特性面板OPM添加动态属性-资料整理

参考资料AutoCAD与动态属性PDF文档 https://www.progdomain.com/584/ObjectARX2016 OPM面板全攻略 https://blog.csdn.net/jfmyes/article/details/121392332整理中…

2024-04-29 03:07:52 526

原创 注册表获取autoCAD安装位置

【代码】注册表获取autoCAD安装位置。

2024-04-29 02:50:11 709

原创 一文了解“字符集”

在计算机中每个字符都要使用一个编码来表示,而每个字符究竟使用哪个编码来表示要取决于使用哪个字符集(Charset)。计算机字符集可归类为3种:单字节字符集(SBCS)、多字节字符集(MBCS)和宽字符集(Unicode字符集)。

2022-09-20 12:24:58 3111

原创 如何学习BCGControlBar?

由于BCGControlBar是一个MFC扩展库,所以最好对MFC有所了解!MFC相关书籍也很多,例如候捷的《 深入浅出MFC》,吕鑫的《VC++就业培训宝典之MFC视频教程》等等。对MFC有所了解之后就可以继续学习BCG了。

2022-09-16 09:59:55 492

原创 CBCGPListCtrl点击表头进行排序

在实际项目中经常需要点击ListCtrl的表头进行排序,而CBCGPListCtrl又无法直接实现排序,通过以下步骤就可实现点击表头排序,希望可以帮助到各位。

2022-01-21 18:57:42 699

原创 OpenGL常用函数参数解析

glVertexAttribPointer void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);第一个参数指定我们要配置的顶点属性。还记得我们在顶点着色器中使用layout(location = 0)定义了position顶点属性的位置值(Location)吗?它可以把顶点属性的位置值设

2021-12-01 15:56:00 1029

原创 C++问题整理

2021-10-18 11:12:33 155

原创 BCGControlBar问题汇总,持续更新

问:如何控制MDI程序在任务栏缩略图中是否显示每个view答:在CChildFrame中重写虚函数BOOL CanShowOnTaskBarTabs() { return FALSE; }通过返回值来控制。

2021-09-18 13:33:20 447

转载 BCGControlBar本地化(汉化)详解

BCGControlBar本地化机制提供了一个创建多语言应用程序的非常简单和可靠的方法。BCGControlBar语言包文件:本地化文件位于BCGCBPro\L.目录中,其中 - 语言名称前缀(FRA - 法国,ITA - 意大利,…)。特定语言资源DLLs位于BCGControlBar\Bin目录下:BCGCBProResCHS.dll Chinese BCGCBProResITA.dll ItalianBCGCBProResCSY.dll Czech BCGCBProResJ

2021-09-14 14:27:49 753

原创 CBCGPDockingControlBar停靠窗口的创建及其位置关系

在MS office、Visual Studio等各类应用中我们都能见到停靠窗口的身影。本文将介绍如何使用CBCGPDockingControlBar创建停靠窗口以及不同停靠窗口之间的位置关系调整。1.根据BCGControlBar Pro 应用程序向导创建一个程序如何创建一个基于BCG的应用程序,本文不再赘述,详情请参考:Application Wizard2.添加一个类使用类向导或手动添加一个继承CBCGPDockingControlBar的类,并添加WN_CREATE、WM_SIZE.

2021-08-26 14:26:05 775

原创 通过字体名获取字体文件

由于在GLFT/FreeType中需要传入字体文件作为参数,所以需要通过字体名来寻找字体文件。现已完成,特此总结分享。参考链接:https://www.codeproject.com/Articles/1235/Finding-a-Font-file-from-a-Font-namehttps://github.com/chaoticbob/Cinder-SdfText 具体看acquireFontNamesAndPaths,有读mac,windows,Linux的https://github.c.

2021-07-30 11:43:02 1263

转载 MFC 控件重绘

1. MFC 控件的重绘原理MFC 的基础控件有很多,常见的就是按钮、列表、标签、输入框等,通常一个应用程序的界面都是由这些小小的控件组合在一起形成了最终的用户界面。系统为每一个基础控件都绘制了一个默认的外观,让我们看个例子:大家可以看到,这是一个基础的 MFC 的对话框,上面有 2 个按钮,2 个标签,2 个输入框,也就组合成了大家熟悉的登录界面。这个界面确实非常"朴素",可能不太符合当下的审美需求,那如果要美化这个界面,要怎么做呢?通常有两种做法:第一种,找美工设计界面,然后给你切图,直接贴图到

2021-03-24 14:11:44 4179 1

原创 Parsing PCB Editor netlist files 

Parsing PCB Editor netlist filesPSTCHIP.DATThe PSTCHIP.DAT file contains a description for each physical part used in a Capture design. The Capture netlister extracts this physical description from properties on all occurrences rather than just instan.

2021-01-06 14:27:46 477

原创 com调用excel后,进程未关闭解决方案

# COM调用结束后,进程未关闭注册lua函数,在lua中调用该函数。static int LuaCloseWindow(lua_State* L){ long hWnd = luaL_checkinteger(L, 1); unsigned long dwPid = 0; ::GetWindowThreadProcessId((HWND)hWnd, &dwPid); char cmdData[128] = { 0 }; sprintf_s(cmdData, "/c taskk.

2020-11-23 10:46:19 711 3

原创 CFileDialog lpszFilter参数

VC中CFileDialog类的lpszFilter参数用来通过后缀过滤文件。|分割,||结束CString strFilter = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";

2020-11-18 14:26:15 381

原创 error C2589: “(”:“::”右边的非法标记

.\src\library\tLuaCOMConnPoints.cpp(704): error C2589: “(”:“::”右边的非法标记.\src\library\tLuaCOMConnPoints.cpp(704): error C2062: 意外的类型“unknown-type”.\src\library\tLuaCOMConnPoints.cpp(704): error C2059: 语法错误:“)”1. 错误原因 函数模板max与Visual C++中的全局的宏max冲突。...

2020-11-16 10:55:41 1244

转载 C读取写入lua table常用接口

#lua_gettable/lua_settable/lua_rawget/lua_rawset/lua_rawgeti/lua_rawseti/lua_getfield/lua_setfield//lua_gettablelua_getglobal(L, "mytable") //<== push mytablelua_pushnumber(L, 1) //<== push key 1lua_gettable(L, -2) //<== pop ke

2020-11-10 10:22:58 336

原创 c/c++遍历lua table的三种方法

#include "lua.hpp" void traverse_table(lua_State *L, int index){ lua_pushnil(L); // 现在的栈:-1 => nil; index => table while (lua_next(L, index)) { // 现在的栈:-1 => value; -2 => key; index => table // 拷贝一份 key 到.

2020-10-27 10:45:05 721

转载 通过vs工具箱拖动到对话框,使用BCGControlBar控件

类名称 描述 如何添加 CBCGPAnalogClockCtrl 使用嵌入式模拟时钟计控制。 在对话框中添加一个空的Picture控件(占位符)(1) 为此控件定义CStatic成员变量(2) 用.H文件中的CBCGPAnalogClockCtrl替换CStatic CBCGPAnimCtrl 控件显示一组具有指定帧速率的位图。 在对话框中添加一个空的Picture控件(占位符)(1) 为此控件定义CStatic成员

2020-09-02 10:10:50 945

原创 DoModal失败的原因

DoModal失败的原因MFC通常对话框不显du示的原因有父窗口HWND无效在ONINITDIALOG里用了ENDDIALOG无效的对框资源ID使用没有注册的自定义控件对话框的某些控件创建失败,如RICHEDIT,要加上AfxInitRichEdit();...

2020-08-13 11:21:29 704 1

原创 3行代码告诉你,如何使用成员函数指针作为函数参数

成员函数指针作为函数参数//定义成员函数指针typedef void(VxSheet:: *ReadObjFunc)(string); //vxSheet为类名//使用成员函数指针为参数bool VxSheet::ReadList(string strObjData, ReadObjFunc readObjFuc){ (this->*readObjFuc)(strObjData);}...

2020-07-31 18:41:29 412

转载 C++常用设计模式

原文链接:https://www.cnblogs.com/chengjundu/p/8473564.html设计模式1、工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。1.1、简单工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。使用简单工厂模式,我们只需要知道具体的产品

2020-05-14 10:49:28 277

转载 C++如何正确使用智能指针?

目录关于Jenkins持续集成是什么为什么要持续集成?持续集成怎么做?搭建GitLab+Jenkins+MSBuild持续集成环境什么是MSbuild?Jenkins插件创建一个自动编译VC工程的任务步骤关于JenkinsJenkins是一个持续集成的工具,用于自动化各种任务,包括构建、测试和部署软件。持续集成是什么大师 Martin Fowler 对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次

2020-05-11 17:36:18 185

原创 C++获取完整类型名

typeid 运算符查询类型的信息。用于必须知晓多态对象的动态类型的场合以及静态类型鉴别。语法(1) typeid( 类型 ) (2) typeid( 表达式 )必须在使用 typeid 前包含头文件 (若不包含该头文件,则每次使用关键词 typeid 都令程序非良构。)typeid 表达式为左值表达式,指代一个具有静态存储期的,多态类型 const std::type_info ...

2019-11-05 12:08:41 5860

转载 如何修改vs工具栏解决方案配置处宽度

点击菜单中,工具->自定义->命令->工具栏->标准->解决方案配置,右侧修改,选择合适的宽度即可:

2019-11-05 11:26:47 900

pybind11导出C++给python调用示例

pybind11 是一个轻量级的仅头文件C++库,用于在Python和C++之间创建无缝的接口。它提供了以下主要特点: 类型安全:自动处理C++和Python之间的类型转换 低开销:最小化运行时性能损失 良好集成:与Python生态系统(如NumPy)完美兼容 现代C++支持:充分利用C++11/14/17特性 pybind11特别适合需要将高性能C++代码暴露给Python使用的场景,同时保持代码的简洁性和可维护性。 原文链接:https://blog.csdn.net/wang161019/article/details/147638166

2025-07-01

13万字C语言保姆级教程

一份涵盖大部分学习 C 语言所需要掌握的核心知识,致力于打造最易懂的 C语言入门教程,让天下没有难学的 C语言。(包含C语言教程、C语言精华文章)

2025-06-25

BigData-Notes 大数据入门指南

前 言 大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南 一、Hadoop 分布式文件存储系统 —— HDFS 分布式计算框架 —— MapReduce 集群资源管理器 —— YARN Hadoop 单机伪集群环境搭建 Hadoop 集群环境搭建 HDFS 常用 Shell 命令 HDFS Java API 的使用 基于 Zookeeper 搭建 Hadoop 高可用集群 二、Hive Hive 简介及核心概念 Linux 环境下 Hive 的安装部署 Hive CLI 和 Beeline 命令行的基本使用 Hive 常用 DDL 操作 Hive 分区表和分桶表 Hive 视图和索引 Hive 常用 DML 操作 Hive 数据查询详解 三、Spark Spark Core : Spark 简介 Spark 开发环境搭建 弹性式数据集 RDD RDD 常用算子详解 Spark 运行模式与作业提交 Spark 累加器与广播变量 基于 Zookeeper 搭建 Spark 高可用集群 Spark SQL : DateFrame 和 DataSet Structured API 的基本使用 Spark SQL 外部数据源 Spark SQL 常用聚合函数 Spark SQL JOIN 操作 Spark Streaming : Spark Streaming 简介 Spark Streaming 基本操作 Spark Streaming 整合 Flume Spark Streaming 整合 Kafka 四、Storm Storm 和流处理简介 Storm 核心概念详解 Storm 单机环境搭建 Storm 集群环境搭建 Storm 编程模型详解 Storm 项目三种打包方式对比分析 Storm 集成 Redis 详解 Storm 集成 HDFS/HBase ..

2025-06-23

KeyPresser一款自动化按键工具

KeyPresser 是一款的自动化按键工具,它可以与窗口交互,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程序提供“开始”和“停止”按钮来启动和终止按键发送过程。 版本2.0来袭 ①添加“突显所选窗口”按钮 点击该按钮后,将把所选窗口显示到最上层并闪烁。 通过该按钮即可解决在启动多个keyPresser时,快速找到所选窗口。 ②改变固定时间间隔为在指定范围内随机 在输入框中分别输入最小值和最大值 最小值最大值相同时,既为固定时间间隔发送按键消息 不同时,则在每次发送按键消息后会随机时间间隔发送按键消息,随机时间间隔介于最小与最大值之间

2024-10-27

KeyPresser源代码

KeyPresser界面采用qt实现,具体功能调用winapi实现,使用SetWinEventHook获取指定窗口句柄,使用postmessage发送按键消息到指定的窗口 KeyPresser 是一款免费的自动化按键工具,它可以向指定窗口发送按键消息,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程序提供“开始”和“停止”按钮来启动和终止按键发送过程。

2024-07-16

cereal1.3.2 C++11序列化库

cereal是一个基于c++实现的序列化工具库,用于将c++的各种数据结构序列化成二进制流进行传输,并将二进制流反序列化成原来的数据结构。相比同用途库,cereal使用简单,仅需包含头文件,cereal 采用任意数据类型,并将它们可逆地转换为不同的表示形式,例如紧凑的二进制编码、XML 或 JSON。Cereal 被设计为快速、轻量级且易于扩展 - 它没有外部依赖性,可以很容易地与其他代码捆绑在一起或独立使用。

2024-07-16

PDOCR:一款好用的OCR文字识别工具

PDOCR是基于PaddleOCR开发的一款文字识别(OCR)软件。PDOCR无需联网,完全免费,简单易用!PDOCR支持打开png、jpg、bmp格式图片进行识别;也可直接粘贴图片进行识别;此外还提供了截图识别功能,截图完毕自动识别!PDOCR现已支持中英文、数字、韩文、日文、中文繁体、泰卢固文、卡纳达文、泰米尔文、拉丁文、阿拉伯字母、斯拉夫字母、梵文字母识别!

2023-03-07

luaDll+ luacom+luaiconv.rar

内含luaDll,luacom以及luaiconv源码。luaDll和luaiconv直接打开sln在Visual studio中即可进行编译。luacom可使用nmake进行编译。也可直接使用已经生成了的dll.

2020-11-23

贾志刚Opencv图像处理视频教程ppt+源码.rar

基于OpenCV版本3.1.0详细讲述OpenCV图像处理部分内容,包括Mat对象使用、HIGHGUI使用、基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。涵盖OpenCV中图像处理部分的全部主要内容。课程中穿插了应用开发中常见问题与分析,是学习图像知识与应用开发必选实践课程。

2020-05-28

ZWCAD一键启动.exe

• 通过本软件可快速检测本机已安装的中望CAD • 通过本软件可以快速选择要启动的中望CAD • 通过本软件可快速检测本机已安装的中望CAD • 通过本软件可以快速选择要启动的中望CAD

2019-08-07

文本比较工具

好用的文本对比工具,TextDiff是一个开放源代码的文本比较工具,与商业或共享文本比较工具相比,虽然在功能上显得较弱,但是已经完全可以满足一般的源代码比较、修改的要求。

2019-10-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除