VS2019 Boost.Python封装C++库学习记录

python 调用C++/封装C++库(VS2019, boost) python 调用C++/封装C++库安装和编译boost库封装和调用实例心得 安装和编译boost库 参考博客 Windows VS2019编译Boost库学习记录 p.s.编译最后一步很慢,可能有半小时 封装和调用实例 参考博客 VS2019 Boost.Python封装C++库学习记录 心得 Bug1: 找不到pyconfig.h文件 解决方案: 原因是没有将python库文件加入路径。如果是通过anaconda装的Python,则将E:\Anaconda3\include加入包含目录;将E:\Ana 阅读详情

比较简单,仅供小白参考哈。

本人安装的是Python3,安装目录为C:\Python37;

1.下载boost库在windows下通过b2.exe自己尝试编译库文件,编译方法可参考本文。

boost库下载链接:下载链接
boost库编译方法:boost库编译方法

2.打开VS2019,新建类型为dll动态链接库的项目,起名TheAPP,测试程序如TheAPP.cpp,内容如下:

#include "pch.h"
#include <boost/python.hpp>
#include <iostream>

char const* greet()
{
	return "hello, world";
}

int Add(int Num)
{
	Num += 1;
	return Num;
}

BOOST_PYTHON_MODULE(TheAPP)			
{
	using namespace boost::python;		
	def("greet", greet);
	def("Add",Add);
}

右击项目名称选择属性,更改以下地方后点击确定保存:
①包含boost的头文件和python的头文件
头文件包括
②链接相关库文件和将输出类型由dll改为pyd格式;
库文件包含
然后编译整个项目,在生成的Debug中找到TheAPP.pyd文件。

3.新建一个test文件夹,在文件夹内新建123.py程序,并将上述生成的TheAPP.pyd放在该文件夹里,此外还需将python的dll也放到该文件夹里(否则执行py程序会报警DLL load failed)。

下图左侧为test文件夹内容,右侧上方为123.py程序,右侧下方为执行py生成的结果。
调用结果
备注:如果编译boost库时候选的stage方式,则不需要将python的2个dll拷进test文件夹即可运行。

关于调试

①将上述123.py增加一行代码,然后将程序运行起来,此时右侧窗口状态在等待用户输入,如下图:
debug
②在TheAPP里添加断点,然后点击菜单栏 调试->附加到进程,选中当前正在运行的python进程,点击下方的附加按钮,如下图:
调试
③此时在python程序里随意输入一个数值,然后在执行print(TheAPP.greet())代码时,vs中会进入对应的断点位置,此时可通过F10或F11在VS中进行单步调试,如下图:
断点调试
以上,就是Boost.Python封装C++库学习记录。

努力、奋斗!

C++ Boost库安装配置与核心组件实战指南 C++标准库为开发者提供了基础功能支持,但在实际工程中常面临功能缺失或跨平台兼容性问题。Boost库作为C++标准库的扩展与试验田,通过提供高质量、经过同行评审的组件填补了这些空白。其设计遵循现代C++理念,采用泛型编程和模板元编程技术,显著提升了代码复用性和可维护性。在技术价值层面,Boost不仅解决了字符串处理、文件系统操作、并发编程等常见痛点,更成为许多C++新标准特性的孵化器,如智能指针、正则表达式等均源自Boost。对于C++开发者而言,掌握Boost意味着能够更高效地处理跨平台路径操作、实现类型 阅读详情

相关推荐

Win11+VS2019+UE4.26环境Carla 0.9.15源码编译全攻略与深度排坑指南

自动驾驶仿真技术是算法验证和系统测试的核心环节,其原理在于通过高保真虚拟环境模拟真实世界的传感器数据与物理交互。这项技术的核心价值在于为自动驾驶研发提供了安全、可控、可重复的测试平台,极大降低了实车路测的成本与风险。在工程实践中,开源仿真平台Carla因其逼真的渲染和灵活的API,成为该领域的主流选择。然而,从源码编译Carla,尤其是在Windows 11这类较新操作系统上,常因环境配置、依赖版本和构建工具链的复杂耦合而充满挑战,涉及Visual Studio、Unreal Engine、CMake和Py

agtvo48266的专栏 432

如何用C/C++语言写Python的库或者模块?

C/C++是Python解释器的底层实现语言之一,因此可以使用C/C++编写Python的扩展库或模块。Python提供了一系列API接口,使得我们可以在C/C++中调用Python解释器和相关的数据结构。需要注意的是,编写C/C++扩展模块需要对Python解释器和相关的数据结构有比较深入的了解,同时需要了解扩展模块的语法和API。编写C/C++函数,并将其编译为一个动态链接库,如dll或so文件。调用导入的函数即可完成操作,返回的结果可以直接在Python中使用。

程序猿视角 2953

C++构建高性能RESTful API:从Boost.Beast实战到架构设计

RESTful API作为现代软件架构中服务间通信的核心协议,其性能与并发处理能力直接影响系统整体效率。其原理基于HTTP协议,通过标准方法对资源进行操作,实现无状态通信。在追求极致性能的场景下,如金融实时计算或高频数据处理,传统高级语言框架可能成为瓶颈。C++凭借其零成本抽象和对系统资源的精细控制,成为构建高性能网络服务的理想选择。通过集成Boost.Asio的异步I/O模型和Beast库,开发者可以构建出能够轻松应对C10K高并发挑战的服务端架构。结合线程池技术实现网络I/O与业务逻辑的分离,并利用nl

weixin_30723433的博客 346

vs2019实现python代码,在VS2019中——用C++调用Python代码

在VS2019中——用C++调用Python代码在VS2019中——用C++调用Python代码文章目录1. 前提条件2. 创建控制台应用程序CppUserPythonTest3. 创建Python应用程序4. 项目属性配置环境VS版本:2019版Anaconda版本:conda 4.8.5Python版本:anaconda中默认的Python 3.7.1电脑中必须安装Python解释器。安装方式...

weixin_39686634的博客 1476

C++单元测试框架选型指南:Google Test、Catch2、doctest与Boost.Test深度对比

单元测试是保障软件质量、实践测试驱动开发(TDD)的核心环节,它通过隔离验证代码单元的行为,确保其正确性与健壮性。在C++生态中,由于缺乏统一标准,框架选型成为开发者面临的首要挑战。不同的框架在设计哲学、易用性、性能与集成度上各有侧重,直接影响着测试实践的可持续性与开发效率。本文聚焦于Google Test、Catch2、doctest和Boost.Test这四大主流框架,从设计哲学、断言能力、测试固件、构建集成、社区生态等多个维度进行深度横评,并结合编译速度、Mock框架搭配等工程实践,为不同规模与场景的

weixin_33851604的博客 993

本地部署Whisper.cpp+Llama.cpp+ElevenLabs语音智能闭环

语音智能闭环是指将语音输入、语义理解与语音合成三阶段无缝衔接的技术范式,其核心原理在于端到端低延迟协同与敏感数据本地化处理。Whisper.cpp提供轻量高精度语音转写能力,Llama.cpp支持量化模型在边缘设备高效推理,二者共同构成隐私可控的本地AI大脑;ElevenLabs则以专业级TTS弥补音质天花板,实现自然人声输出。该混合架构兼顾安全性、实时性与可用性,广泛应用于办公自动化、无障碍交互、教育陪练等场景。本文详解如何基于这三大工具构建可落地的本地语音智能系统。

weixin_30267785的博客 374

C++与Python混合编程

C++与Pyhon混合调在现实中有很多的应用场景,特别是对基于深度学习的产品开发上。所以无论是VS或者是QT都提供了相应的库来调用Python,本篇将以VS2019为例,大致讲述Python3.7在VS上混合编程的实现(注意:VS混合编程有很多的软件和硬件上的限制,特别是python版本,切勿使用3.9以上的python版本,以免个别函数调用出现问题) 1、Python环境的搭建 Python环境的搭建是混合编程实现的基础必要条件,这里主要包括,解释器的路径、解释器的debug模式(这点最容易出现问题)、

qq_36559788的博客 1万+

使用swig&VS2010编译C&Cpp文件成pyd库

使用swig&VS2010编译C&Cpp文件成pyd库

Python调用C/C++之动态链接库(.dll)(vs2019+pycharm)

Python调用C/C++动态链接库,简单介绍怎么生成C/C++动态链接库以及python如何调用

Vccp_1M的博客 5248

Origin科研绘图——桑基图

是一种用于展示“流动”(flow)关系的可视化图表,常用于呈现能量流、物质流、资金流、信息流等在不同节点之间的传递和分配情况。它最大的特点是用“宽度可变的流线”来直观表示数量大小——流线越宽,代表流量越大,因此特别适合理解复杂系统中资源从哪里来、到哪里去、以及不同路径所占比例。为该流程对应的数量。只需将各个流程逐项填写在 A、B、C 三列即可,流程的排列顺序并非关键,确保起点、终点及对应数值准确才是最重要的。与柱状图、饼图不同,桑基图不仅展示“多少”,还展示“从哪到哪”。至此,本期教程就结束啦。

weixin_41301530的博客 1394

ANSYS Fluent热边界条件避坑指南:为什么你的自然对流计算结果总出错?

本文深入剖析了在ANSYS Fluent中进行自然对流仿真时,导致计算结果出错或发散的核心原因与解决方案。重点解析了重力项与操作密度设置、Boussinesq与不可压缩理想气体模型的抉择、以及压力离散格式(推荐Body Force Weighted)这三大关键雷区,并结合电子机箱散热等实战案例,提供了一套稳定可靠的仿真设置流程与调试技巧。

weixin_28396629的博客 740

boost python单步调试_VS2019 Boost.Python封装C++库学习记录

比较简单,仅供小白参考哈。本人安装的是Python3,安装目录为C:\Python37;1.下载boost库在windows下通过b2.exe自己尝试编译库文件,编译方法可参考本文。boost库下载链接:下载链接boost库编译方法:boost库编译方法2.打开VS2019,新建类型为dll动态链接库的项目,起名TheAPP,测试程序如TheAPP.cpp,内容如下:#include "pch.h...

weixin_36212050的博客 293

Python+AI能源管理实战:从电力负荷预测到智能调度的全流程开发

本系统展示了Python在能源管理领域的强大能力,通过AI技术实现了从预测到优化的智能决策闭环。随着碳中和目标的推进,智能能源系统将成为新型电力系统的核心大脑。📌 专业建议:系统部署需考虑网络安全防护,关键控制指令应设置多重验证机制!关注我的优快云账号获取能源系统安全最佳实践~下期预告:我们将探索Python在智慧医疗中的应用,开发基于多模态数据的智能诊断辅助系统。想提前获取代码?评论区留言"智慧医疗"获取GitHub源码链接!

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 625

Windows中Boost:python简单示例—— python调用c++函数

一、啰嗦的背景介绍 最近在做的项目,小伙伴们主体功能想使用python。而通信模块,老师要求我使用成熟的C++框架,因为通信模块需要与对方的c++服务器进行连接。最开始有同学研究了一下python如何调用c++,也给自己发了链接: 如何实现 C/C++ 与 Python 的通信? 浅谈Python C扩展 自己看了一会,就觉得过程太复杂。灵机一动,自己目前使用Boost.Asio进行网络通...

lucyLee的博客 4165

Protege新手必看:从安装到建模的完整指南(附推理功能详解)

本文为Protege新手提供从安装、配置到核心建模的完整实战指南。详细讲解了Java环境准备、本体项目创建、类与属性定义、个体填充等关键步骤,并重点解析了推理功能的配置与使用,帮助读者快速构建可逻辑推理的知识图谱,避开常见陷阱。

numpy6sculptor的博客 796

C++游戏开发实战:从零构建局域网联机对战系统(附完整代码解析)

本文详细介绍了如何使用C++开发局域网联机对战游戏系统,涵盖从环境搭建到实战代码解析的全过程。重点讲解了Winsock库的应用、Socket通信原理、服务端与客户端开发技巧,以及性能优化和安全防护方案,帮助开发者快速掌握C++游戏开发的核心技术。

weixin_42524945的博客 444

Boost.Python实战指南:C++与Python混合编程从入门到精通

在软件开发中,C++以其高性能和贴近硬件的特性,常被用于计算密集型任务,而Python则凭借其高开发效率和丰富的生态系统,在快速原型、数据分析和脚本编写方面占据优势。混合编程的原理在于通过桥接技术,让两种语言能够相互调用,充分发挥各自的长处。这种技术价值在于,它允许开发者将性能关键的C++核心模块与灵活便捷的Python脚本层无缝结合,从而构建出兼顾性能与开发效率的应用程序。其应用场景广泛,包括游戏开发(C++引擎与Python脚本)、量化金融(C++高频交易核心与Python策略回测)以及科学计算(C++

cumo7370的博客 412

从CTF到实战:Frida Hook无导出SO函数的3种特殊姿势

本文深入探讨了在移动安全逆向工程中,如何利用Frida Hook无导出SO函数的三种高级技巧:字符串引用定位法、调用栈回溯法和内存特征码扫描。针对安卓So层加固和混淆场景,文章结合CTF赛题与实战案例,详细解析了每种方法的原理、实现步骤与适用场景,为安全研究人员提供了从理论到实践的完整解决方案。

jenkins8butler的博客 516

使用boost.python在python调用C++接口(windows)

今日需要用到python中直接调用C++功能,按照网上的例程配置boost.python的环境,总是不能成功,最后汇总了几个文件,终于尝试成功,记录于此以备查阅。 boost.python可以用来封装C++(C不适用)的代码,形成可以被python调用的.pyd库。 具体的流程如下所示:(boost.python 1.42 + python 2.7 + vs 2005) 1)下载boost.

lzl001的专栏 2728

1020空心杯电机驱动设计与ESP32实战

空心杯电机是一种高动态响应的直流微特电机,其驱动本质是解决电感负载下的大di/dt启动、反电动势耦合与电流纹波抑制问题。核心原理在于建立包含内阻、电感和反电动势的等效电路模型,并据此匹配开关器件、PWM参数与采样闭环。技术价值体现在小体积下实现毫秒级响应、低噪声(>30kHz)、高精度电流保护(±50mA)及热鲁棒性。典型应用于微型航模、手持云台与精密执行器等对功率密度和动态性能敏感的嵌入式系统。本文以1020规格空心杯电机为对象,基于ESP32平台完成从MOSFET选型、32kHz硬件PWM生成到INA2

weixin_42298164的博客 582

LVGL hal indev(porting evdev)

LVGL中对输入设备的管理是单例实现的,而在Linux的输入设备是多个的,所以需要对其进行改造成多例实现。

Bigan(安)的博客 3345

C++与Boost库实战:从零构建本地搜索引擎核心模块

搜索引擎是现代信息检索的核心技术,其核心原理是通过倒排索引实现海量数据的快速查找。倒排索引将文档内容映射为关键词到文档列表的关联结构,从而将查询复杂度从线性搜索降至接近常数级别。这项技术的工程价值在于能够高效处理TB甚至PB级数据,广泛应用于网页搜索、企业文档检索和日志分析等场景。本文以C++和Boost库为技术栈,深入探讨如何实现一个高性能的本地搜索引擎,重点解析了倒排索引的构建过程与查询处理机制,并详细介绍了Boost.Filesystem在跨平台文件操作以及Boost.StringAlgorithms

weixin_33719619的博客 350

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python中dlib人脸识别库安装历险记

0x00 dlib简介dlib是一款出色的人脸识别库,这个库将很多常用的人脸识别算法都封装成为函数,而且是跨平台的库,支持在CPP和PYTHON中被调用。0x01 踩坑经历dlib库是建立在其他的库打基础进行使用的,这些库主要有:openCV,boost库等在windows下安装直接输入:pip install dlib是可以找到这个包的,但是,会提示安装失败,需要下载VS编译器神码的由于wind...

技术笔记 3116

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

用llama.cpp实战入门C++:Windows下从编译到CUDA加速

C++是一门强调内存控制与系统交互的编程语言,其核心在于理解编译构建、运行时依赖、指针与RAII等底层机制。llama.cpp作为纯C++实现的轻量级大模型推理框架,以约3万行聚焦代码提供了极佳的学习沙盒——它不抽象、不封装,让std::vector、struct、CMakeLists.txt、Visual C++ Redistributable等概念在真实报错与调试中自然浮现。通过在Windows 11下配置VS2022、编译CLI工具、启用CUDA加速及加载qwen3-embedding模型,学习者可同

weixin_30235225的博客 511

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Ubuntu 22.04下构建纯净可复现的Carla C++开发环境全攻略

在C++大型项目开发中,环境依赖管理是保障编译一致性和团队协作效率的核心挑战。其原理在于通过隔离技术,将编译器、库文件等依赖项与主机系统解耦,从而构建一个版本可控的独立沙箱。这一实践的技术价值在于实现了开发环境的可预测与可复现,从根本上解决了因系统库版本、编译器差异导致的“在我机器上能运行”的经典难题。在自动驾驶仿真、游戏引擎集成等复杂应用场景中,环境隔离尤为重要。本文以Carla仿真平台为例,聚焦于在Ubuntu 22.04 LTS系统中,通过系统包管理、Python虚拟环境(venv)与CMake构建工

weixin_34055787的博客 298
上一篇: Python turtle库画爱心
下一篇: Windows VS2019编译Boost库学习记录
照书抄代码
博客等级 码龄8年 32粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值