windows环境下c++调用python

c调用python_C++调用python方法及环境配置(Windows环境、VS工具) 请注明转自:想造轮子的刘大胆:C++调用python方法及环境配置(Windows环境、VS工具) c++和python使用混合编程,有四种方式来实现:(1)C++调用python(2)直接调用python文件并执行(3)3.使用Cpython:这是一个第三方库,可以将python代码直接变成c代码(4)使用pybind11库(建议),网址:pybind/pybind1 在这里... 阅读详情

环境搭建

2选1

1.准备32位的python和32位mingw
2.准备64位的python和64位mingw64

  • 32位mingw下载地址:https://盘.百度.com/s/1Z25NxrRuOsjOKWXddTNyeg 提取码:dvgl
  • 64位mingw64下载地址:https://www.onlinedown.net/soft/10045442.htm
    • 能力强的也可以直接到mingw的官网下载:https://www.mingw-w64.org/

把g++.exe所在路径设为环境变量

  • 以mingw64为例(32位同理)
  • 解压上面下载mingw64,把里面的文件解压到你自己喜欢的路径上
    在这里插入图片描述
    在这里插入图片描述

搭建python环境(略)

g++和python搭建完毕就可以开始hello word!了



把c++代码编译为exe程序

  • 新建一个c_call_py.cpp
#include <stdlib.h>
#include <Python.h>

int main(int argc, char *argv[]){
    Py_Initialize();
    PyRun_SimpleString("print('hello world')\n");
    Py_Finalize();
    system("pause");  // 暂停
    return 0;
}
  • 打开cmd(最好用管理员权限运行)
  • 在cmd输入g++ c_call_py.cpp -I “自己电脑python的路径\include” -L"自己电脑python的路径/libs" -l自己电脑python的.lib -o test
    • 例如我电脑python3.8就这样子输入
    • g++ c_call_py.cpp -I “C:\Program Files\Python38\include” -L"C:/Program Files/Python38/libs" -lpython38 -o test

在这里插入图片描述

  • 编译生成了test.exe
    在这里插入图片描述
    在这里插入图片描述

  • 一路过来可能遇到的坑

    1. 百度搜看到的大多数都是这个命令行:g++ main.cpp -I/usr/include/python3.5 -lpython3.5m -o test
      • 我卡在这里卡了很久,关于win环境的调用根本不适合这个命令
    2. 无法解析的外部符号 __imp_Py_Initialize …
      • 原因就是mingw和python不是相同的64或32,我就是一开始32位的mingw调用64位的python导致出现这个错误

相关推荐

不安装Python的情况下用C++调用Python

想在不安装python的情况下调用它,网上说的方法都不太详细,就连官方给的chm文件也没提及怎么配置,摸索了下,找到了简单调用的办法,文章在这里 https://blog.youkuaiyun.com/sunnyloves/article/details/45602423

C++调用Python(混合编程)函数整理总结

python是一种非常强大的胶水语言,可以灵活的嵌入到c++和java等主流语言中。python提供了一套C的API库,是的开发者能够很方便的从C、C++的程序中调用python中的各个功能模块。c++ 调用 python ,本质上是在 c++ 中启动了一个 python 解释器,由解释器对 python 相关的代码进行执行,执行完毕后释放资源,达到调用目的。从操作步骤上看,C++调用Python低层接口可以分为几个阶段:和环境相关的接口如下: 2.调用python脚本的两种方式 第一种方法示例: 第一种

jindayue的博客 1万+

Windows系统Python直接调用C++ DLL的方法

主要介绍了Windows系统Python直接调用C++ DLL文件的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

Windows平台进行C++ 调用 python大全

然后配置此lib文件的路径,可以将python37.lib直接复制到工程中去,也可以直接添加系统中python37.lib的绝对路径。将分隔符替换为/,在Windows系统下,将分隔符替换为/Python也能正确识别。例如,"D:/files/data/ndvi.tif"。③ 如果将py文件和cpp文件放在同一文件夹,注意py文件要和cpp一个目录层级,否则会找不到导入的python文件模块。以../../开头:向上走两级,代表父级的父级目录,也就是上上级目录,再说明白点,就是上一级目录的上一级目录;

yigedadabing的博客 536

从Unitree B2W到四足机器人:用Isaac Lab构建强化学习奖励函数的5个实战技巧

本文分享了在Isaac Lab仿真环境中,为Unitree B2W等四足机器人设计强化学习奖励函数的5个核心实战技巧。内容涵盖奖励函数的结构化组合、轮腿混合机器人的适配策略、课程学习的动态调整、域随机化增强鲁棒性以及高效的调试可视化方法,旨在帮助开发者构建更稳定、高效的机器人运动策略。

lg888的博客 1066

KIBANA可视化管理界面说明

更说明转自https://blog.youkuaiyun.com/IT_ZRS/article/details/125496588 1 主要结构功能 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图表 Dashboard:仪表视图 将构建的图表组合形成图表盘 Timelion:时间轴视图 随着时间流逝的数据 APM:性能管理视图 应用程序的性能管理系统 Canvas:大屏展示

tian830937的专栏 7083

Windows 下用 C++ 调用 Python

本文主要介绍一下如何使用 C++ 调用 Python。包括运行 python 脚本;C++ 和 Python 之间参数的相互转换和传递。

一些笔记 1671

地心地固坐标系与北天东坐标系的转换

经过这一步旋转,x3轴和y3轴就处在过O3点的经度线所在的平面了,而且z3轴指向了东。将图3的坐标系旋转成图2的样子。这里需要多次旋转,每次以某个轴为对称轴进行旋转,对应的坐标变换参考。的原点在地心,Z轴指向北极点,X轴指向本初子午线与赤道的交点,Y轴指向符合右手定则,如下图所示。下面实现地心地固坐标系到北天东坐标系的转换,问题描述为:设一点。以y1轴为对称轴,顺时针旋转90°,得到图4的样子。,X轴指向北,Y轴指向天,Z轴指向东,如下图所示。因此,北天东坐标下的坐标为。点在图3坐标系下的坐标。

csdnqixiaoxin的博客 3556

在Windows上用C++调用Python

1 环境变量配置 1.1 Path 变量增加路径 在Path里面增加python路径: D:\MyProgram\Anaconda\envs\3DBONET 不然会报错:找不到python36.dll 1.2 PYTHONHOME变量 增加PYTHONHOME变量 不然会报错: 2 复制lib文件 将python 环境下libs文件夹里面的python36.lib文件复制一份到本文件夹,重命...

qq_23996885的博客 422

一文搞懂 RC Correlation Scale Factor 的生成与应用

pre-route 用的是统计估算模型,post-route 用的是详细布线提取,signoff 用的是第三方 QRC 或 StarRC——三个工具,三套参数体系,结果自然天差地别。不同 RC corner(rc_worst/rc_best/rc_typical)对应不同的工艺角和温度环境,每个 corner 的 R/C 偏差比例不同,必须分别生成和应用各自的 scale factor。别被名字骗了,这个工具专门干一件事——统计拟合两组 SPEF 之间的偏差,自动推荐最优 scaling factor。

weixin_47770727的博客 555

GFPS技术原理(一)-简介

GFPS(谷歌快速配对服务)利用BLE技术简化设备配对流程,相比传统方式大幅提升用户体验。首次配对时,设备广播包含型号ID和安全密钥的BLE信号,手机检测后弹出配对通知,用户点击即可完成安全连接并将设备与Google账户绑定。该技术支持跨设备同步、电量显示、找回设备等功能,后续配对更加便捷。GFPS通过BLE实现快速发现、一键配对和安全连接,结合Google后端服务提供元数据支持,已成为出海设备的认证标准。其核心优势在于简化操作步骤并增强功能性,特别适合非技术用户群体。

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2062

c++ 调用python_C++调用python方法及环境配置(Windows环境、VS工具)

请注明转自:想造轮子的刘大胆:C++调用python方法及环境配置(Windows环境、VS工具) c++和python使用混合编程,有四种方式来实现:(1)C++调用python(2)直接调用python文件并执行(3)3.使用Cpython:这是一个第三方库,可以将python代码直接变成c代码(4)使用pybind11库(建议),网址:pybind/pybind1 在这里...

weixin_39793189的博客 812

2026年运维工程师常见面试选择题

这篇文章总结了30道Linux运维面试常见问题及解析,涵盖基础命令、系统监控、故障排查、数据库、缓存、容器编排等多个方面。主要内容包括: 基础命令使用:如df查看磁盘、free查看内存、top监控进程等 系统监控与故障排查:负载判断、端口检查、进程管理等 中间件相关:Nginx状态码、MySQL主从复制、Redis缓存问题 容器技术:Docker优势、Kubernetes作用 运维理念:高可用、监控告警、发布策略、备份容灾 工作原则:故障处理优先级、运维工程师核心能力 文章不仅提供标准答案,还解析了各命令的

不务正业的猿 193

windows环境下python调用cpp动态库(win10+opencv)

【前言】在windows环境下,可以利用python直接调用cpp的动态链接库,从而达到混合编程的目的。 一、cpp的动态链接库 windows下编译cpp的动态链接库的技术比较多了,这里指出两处需要特别注意的地方: (1)要利用extern "C"关键字,实现C编译; (2)pythoe与 cpp的接口最好重写,即在功能函数外面添加一层包装,在包装内实现数据交换。 二、python调用cpp的动态链接库 主要注意三个地方: (1)dll如果依赖于其他动态库(如opencv),则必须保证其他被

sunzhao1000的博客 2710

10、皮肤 - 神经记录实验全流程解析

本博客详细介绍了皮肤-神经记录实验的全流程,涵盖实验所需的材料准备和具体操作方法。内容包括细胞外记录设备的设置、合成间质液(SIF)的制备与调节、小鼠后爪皮肤和胫神经的手术解剖步骤、清洁解剖后的记录准备、纤维分离与感受野识别方法,以及神经纤维机械响应的测量。该实验为研究神经纤维的活动与功能提供了重要的技术支持,适用于神经科学研究领域。

backprop5master的博客 186

使用DrissionPage实现携程酒店信息智能爬取

本文介绍了一个基于DrissionPage技术的携程酒店信息爬虫系统,通过监听API数据包实现高效采集。系统可自动获取酒店名称、价格、评分、位置等15个维度的数据,支持多页滚动加载和智能去重。相比传统爬虫,该方法直接解析API返回的JSON数据,避免了复杂的HTML解析和加密参数分析,提高了开发效率和稳定性。文章详细阐述了13个关键实现步骤,并强调数据采集应严格遵守法律法规,仅用于技术学习和市场研究。该系统可为旅游决策、价格监测等提供数据支持,但需注意合理使用频率和隐私保护。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 386

Windows环境下用C++语言调用Python程序

按照网上教程编写Python代码hello.py如下 def printHello(): print("Hello World") if __name__ == "__main__": printHello() 写c++代码main.cpp如下(和上述Python代码在同一目录下): #include <iostream> #include <vector> #include <string> #include <Python.h>

u012149181的博客 2049

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python什么模块动态调用链接库_windows环境下python调用cpp动态库

第一部分、前言在windows环境下,可以利用python直接调用cpp的动态链接库,从而达到混合编程的目的。一、cpp的动态链接库windows下编译cpp的动态链接库的技术比较多了,这里指出两处需要特别注意的地方:(1)要利用extern "C"关键字,实现C编译;(2)pythoe与 cpp的接口最好重写封装,即在功能函数外面添加一层包装,在包装内实现数据交互。二、python调用cpp的动...

weixin_39942474的博客 185

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

windows环境下python调用cpp文件出现OSError: no file with expected extension异常的解决方案

今天本想试着运行一下Pointnet代码,结果发现可视化的show3d_balls.py文件运行不了,提示OSError: no file with expected extension异常,原因是 dll = np.ctypeslib.load_library(os.path.join(BASE_DIR, 'render_balls_so'), '.') windows下调用dll失败引起的。 虽然说知道这个问题,但不知道该怎么解决。查了一下资料,尝试搞了一套解决方案。 首先分析这行代码,目

qq_38939905的博客 5277

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

记录一下在windows环境下,使用Python调用C++的dll动态链接库记录:

使用Python调用C++的dll动态链接库记录:在Windows上

qq_37248679的博客 340

Windows 10下用Anaconda配置pybind11环境:Python调用C++实战指南

本文详细介绍了在Windows 10系统下,使用Anaconda配置pybind11环境以实现Python调用C++的完整实战流程。内容涵盖环境准备、工具链配置、首个模块创建、STL与NumPy交互、调试及打包分发,旨在帮助开发者高效构建高性能Python扩展,解决Python性能瓶颈问题。

gan8painter的博客 218

搞定 Python 与 C++ 协作:Windows 环境下调用类的实操案例

在软件开发中,有时候需要Python与C++相结合,以充分发挥两者的优势。Python作为一种高级编程语言,具有简洁易读的特点,适用于快速开发和原型设计。而C++则是一种性能强大的编程语言,适用于需要高效率和底层控制的场景。Python调用C++代码的主要方式是使用Cython、ctypes或SWIG等工具。其中,Cython是一种混合语言,允许将Python代码与C语言结合,通过编写类型声明来提高性能。而ctypes是Python标准库中的一部分,允许Python直接调用C函数,并处理C数据类型。

无垠宇宙 6165

C++调用python方法及环境配置(Windows环境、VS工具)

c++和python使用混合编程,有四种方式来实现: (1)C++调用python (2)直接调用python文件并执行 (3)3.使用Cpython:这是一个第三方库,可以将python代码直接变成c代码 (4)使用pybind11库(建议),网址:pybind/pybind1 在这里描述VS写C++中调用python(方法一)的流程。 1.c++在VS中调用python的配置 其中pyt...

SurpassLi的专栏 128

python调用C++混合编程:VScode配置pybind11环境(windows)

用MinGW64的GCC编译的pyd文件无法在win上使用,有时会报错无法找到该模块。因为Win上的python解释器是用MSC编译的,然后它使用的二进制模块也需要是MSC编译的。pybind11可以让python与C++混合编程,将复杂的算法部分封装到C++库进行计算,python负责流程的串通。最后用配置好的Cmake与C++编译器编译pyd库,点击下面的生成(build)。按control+shift+P调出命令行,输入cmake:configure,选择配置的llvm-mingw 编译器。

水蓝草的博客 2962

matplotlib.pyplot用c++画图

matplotlibcpp画图,搬运工,转自https://mangoroom.cn/cpp/call-matplotlib-on-cpp-2.html

wangjl2416的博客 3947
上一篇: python使用tkinter实现a星寻路可视化
下一篇: python压缩图片--指定压缩大小且保真压缩
Paper_Sheep
博客等级 码龄7年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值