VC开发应用程序答疑

专家门诊vc++开发答疑 专家门诊vc++开发答疑源代码 立即下载
VC开发应用程序答疑
(作者:林琪 2001年01月09日 19:16)

  在微软的开发工具中,VC仍然是目前最为流行的开发工具,有大量的开发人员利用VC进行项目开发。在开发VC应用程序时,我们会遇到一些常见问题,笔者经过总结,给出了通用的解决方法,希望能对大家有所帮助。

  问:应用程序中往往需要启动其它的程序运行,如何实现加载,有几种方法,哪一种比较好?

  答:有三个SDK函数 WinExec, ShellExecute,CreateProcess都可以实现加载。

  其中WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式,如果显示方式为SW_SHOWMAXMIZED,此时若加载一个无最大化按钮的程序,如计算器等等,就不会出现正常的窗体,但在任务列表里会出现。

  ShellExecute比WinExex灵活,可以指定工作目录。

  CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性、继承信息、类的优先级等等。

  总之,灵活性与简单性成反比,你可以依具体情况决定使用哪一个函数。

  问:在CParentView中为WM_LBUTTONDOWN定义了一个句柄,但我建立一个新的CChildView时, 句柄却得不到处理,为什么?

  答:很可能在ChildView文件中的MESSAGE_MAP有问题,特别是用向导生成器就很容易会发生这种事情,如匹配 BEGIN_MESSAGE_MAP(Child,Parent)的参数中存在错误的基类。

  另外还可以检查一下消息映象宏中的类名和父类名是否正确,如果你用自己的消息句柄手工代替了向导所做的,就必须保证没有写错,一个错误的参数或者加了一个“const”将会改变消息映象,从而造成不被正确调用。

  问:在开发应用程序时,确定应用程序的路径非常重要,请问如何自动确定应用程序的路径呢?

  答:可以用GetModuleFileName 来获得应用程序的路径,不过这个函数将连同执行文件名一起返回,当然你只要利用串操作把最后的执行文件名去掉就可以了。

  其实,在程序开发中,还可能用到以下一组目录,下面列出相应的调用函数,希望对你有所帮助。

  Windows目录:

  GetWindowsDirectory

  Windows下的system目录:

  GetSystemDirectory

  temp目录:

  GetTempPath

  当前目录:

  GetCurrentDirectory

  问:系统参数往往决定了一些操作属性,那么如何在程序中实现系统参数的存取呢?

  答:这里有一个很关键的SDK函数SystemParametersInfo。

  调用该函数可以查询和设置系统参数,诸如按键的重复速率设置、鼠标双击延迟时间、图标字体以及桌面墙纸等等,特别是其中第一个参数决定了对哪一类系统参数的控制,如SPIF_GETICONTITLELOGFONT(图标标题字体)、SPI_SETDESKWALLPAPER(桌面墙纸)等等。

  不过要说明的是,如果需确定当前屏幕分辨率,我们可以直接调用SDK函数GetSystemMetrics,该函数可以检索有关Windows显示信息,诸如标题大小、边界大小以及滚动条大小等等。

  问:在VC编程开发时,如何控制应用程序提前结束﹖

  答:在编程中这是一个经常要遇到的问题,基本思想是向窗口(窗口句柄可以用AfxGetMainWindow函数获得)发送 WM_CLOSE消息,调用 CWnd::OnClose成员函数,最好向用户提示是否保存修改过的数据。当然还可以用FindWindow函数来找窗口,但这不是一种好方法,因为它需要窗口标题栏内容作为参数,而无法处理标题栏自动改变,这样在事先不知道标题栏的情况下FindWindow就无能为力了。

  另外如果希望应用程序不停地工作,要避免用户突然关掉系统,就需要主框架窗口类中使用消息WM_QUERYENDSESSION了,你需要完成相应的消息响应函数。

  问:MFC可以发现内存漏洞,这个特性如何使用呢?

  答:要发现内存漏洞,就必须利用Debug选单中的Go选项,而不是Project选单中的Execute选项,来运行应用程序,这样MFC会在程序终止时报告内存漏洞。如果没有,那么试试运行MFCTracer工具程序(在VC++程序组中),并启动跟踪,然后返回应用程序。原先的Task Manager应用程序显示顶层窗口的列表。为了显示该列表,窗口必须可见、包含一个标题以及不能被其他窗口拥有。调用CWnd:: GetWindow可以检索顶层窗口的列表,调用IsWindowVisible、GetOwner以及GetWindowTextLength可以确定窗口是否应该在列表中。



virtuoso:layout如何做flat修drc 有些drc在virtuoso layout中修更节省时间,比如遇到一些via array需要做删改时,发现工具把via array做成了一个cell,如图。去改cell可能会影响很多via,所以最好的办法是做flat,去调整cut,比如删除。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 阅读详情

相关推荐

铝合金外壳表面处理工艺全解析:从阳极氧化到瓷泳喷涂的7种方法对比

本文全面解析了铝合金外壳的7种主流表面处理工艺,包括阳极氧化、粉末喷涂、瓷泳喷涂等。通过对比其原理、性能、成本与应用场景,为产品设计师和工程师提供了从防护性、装饰性到功能性的立体选型框架,帮助您根据具体需求选择最佳工艺方案。

weixin_29278805的博客 743

VS使用C++开发桌面程序

VC环境下开发Windows应用所需环境的简单教程

4395

【STM32】STM32F103C8T6多串口通信实战:3个USART并行收发与中断处理优化

本文详细介绍了STM32F103C8T6多串口通信的实战技巧,包括3个USART模块的并行配置、中断优先级优化及数据收发冲突规避策略。通过硬件初始化步骤、中断优先级设置和双缓冲区实现等方案,有效解决了多串口通信中的数据错乱问题,提升系统稳定性与效率。

weixin_42526417的博客 168

做vc++ Windows桌面应用开发者入职一个月的感受

Windows vc++ 桌面应用技术的天花板高吗 1. 因为Windows不是源代码开源的所有你无法深入的去探寻里面更深层的代码。Microsoft Windows 提供的很多API(应用程序接口) 只是给你参数说明, 没有提供源代码是怎么实现的。拿去直接用就是了,我认为这样很难学习到很高一层的设计和架构。 2. 如果真的想要理解Microsoft Windows操作系统更深一层, 我推荐Win...

u011213040的博客 831

上网第二课:办了百兆宽带,为什么测速只有一半?

最慢的那一环。

qq_36765170的博客 109

接口电路设计的关键要点

接口电路设计是嵌入式硬件开发的核心环节,本文系统阐述了五大关键设计要点:1)电平匹配技术,详细分析了3.3V/5V系统互连方案及转换电路计算;2)阻抗匹配原理,包括高速信号反射机制及差分信号处理;3)滤波与去耦设计,提出多级电容配置和"先电容后过孔"布局原则;4)接地设计规范,重点说明模拟/数字地分离及高速信号回流路径;5)防护电路设计,涵盖防反接、过流保护及ESD防护方案。文章通过具体计算公式、器件选型指南和布局技巧,为接口电路设计提供了系统化的解决方案,并附有设计检查清单和典型问题分

weiyvyy的博客 454

C语言开发windows桌面程序,演练:创建传统的 Windows 桌面应用程序 (c + +)

演练:创建传统的 Windows 桌面应用程序 (c + +)05/28/2020本文内容本演练演示如何在 Visual Studio 中创建传统的 Windows 桌面应用程序。 要创建的示例应用程序使用 Windows API 显示 "Hello,Windows desktop!" 应用程序。 可以将本演练中开发的代码作为模式来创建其他 Windows 桌面应用程序。Windows API (...

weixin_33726568的博客 1万+

Vite 任意文件读取漏洞复现(CVE-2026-39363)

Vite开发服务器 WebSocket中的fetchModule方法未实施server.fs访问控制,导致攻击者可通过WebSocket连接并读取服务器上的任意文件(CVE-2026-39363)

iSee857的博客 221

VC开发应用程序答疑 (转)

VC开发应用程序答疑 (转)[@more@]VC开发应用程序答疑(作者:林琪 2001年01月09日 19:16)  在微软的开发工具中,VC仍然是目前最为流行的开发工具,有大量的开发人员利用VC进行项目开发。在开发VC应用程序...

csd3176的博客 163

2026华为OD机考新系统真题 + 双机位C卷 + 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 45万+

win10锁屏或登录时会自动弹出触摸按键的问题解决办法

本篇文章主要讲解win10锁屏或登录时会自动弹出触摸按键的问题解决方式。日期:2023年5月17日作者:任聪聪。

任聪聪的博客 1万+

vc6.0安装

VC6.0(VC++6.0)下载地址和安装教程(图解) <使用Dev C++编写C语言程序使用VC6.0编写C语言程序> C语言中文网推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线,随时响应! 截止到2016年07月06日,C语言中文网提供的V...

xinlongkun的博客 798

【自动驾驶轨迹规划之hybrid A*算法】

本文参考论文:https://ai.stanford.edu/~ddolgov/papers/dolgov_gpp_stair08.pdf 这篇文章是基于经典A*算法与reeds-shepp曲线的,不清楚的读者请参考【自动驾驶轨迹规划5之A*算法】_无意2121的博客-优快云博客【自动驾驶轨迹规划之dubins曲线与reeds-shepp曲线】_无意2121的博客-优快云博客 目录 1 hybrid A* 算法创新点 1.1 搜索方式 1.2 车辆运动学模型 1.3 reeds-shepp曲

weixin_65089713的博客 1万+

VC6.0的定时器设计

进行VC编程都需要熟悉定时器设计,观察动态数据的变化,如果对时间的精度要求不是很高,精确到1秒,还是不错的选择。还有不错的高精度定时器介绍。 有很多VC的工程师提供了很好的指导,这里摘录几篇比较好的博客。

Ling_Tech的博客 1757

ssm框架搭建

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【141029】Visual C++开发答疑300问+随书光盘源码

Visual C++开发答疑300问,并附有全书的实例源代码,对初学VC++学习者将是很不错的教程和资料。这本书选了300多个VC++编程中经常遇到的典型问题作为实例,展开编程讲解。内容涵盖VC++开发工具调试、编程基储对话框及控件使用、窗口界面设计、SDI和MDI窗口、消息钩子函数及DLL编程、文件操作、数据库、网络、图形图像、打印控制等各个方面,重点突出编程实用性

资源小站 787

深度学习工具包 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")

【代码备忘】VC判断自己窗口的另一种方法

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 【代码备忘】VC判断自己窗口的另一种方法 FindWindow就不说了,这说 的是另一种:GetProp 代码也差不多: 查询... HWND hWndPrevious = ::GetWindow(::GetDesktopWindow(),

木心[ mx1024 ] 欢迎 1077

大学四年开发软件列表

大学一年级:无所作为,学习中。大学二年级:用C语言写了一个数据管理程序,没有用到数据库,只是将数据保存在文件中。具有图形化操作界面,主要是读了一本叫《C语言高级程序设计》其中对用C开发图形化操作界面做了很详细的讲解,受益匪浅。大学三年级:用PowerBuilder开发了一个『高校图书管理系统』,功能齐全。完成后,对MIS系统开发有了更深的理解,体会到在实际项目开发中才能成长。大学四年级:自娱用VC

Heath's Blog 2286

MINIGUI 中答疑

Q:如何安装,配置及运行minigui? A:请参考kongming老大写的文档:MiniGUI编译、安装和配置, http://www.minigui.org/ibmdocs/minigui-2/index.html Q:运行mginit死机后,重起怎么不能再运行mginit? A:请删除/var/tmp/下的mginit和minigui,再重新运行. Q:运行mginit后,鼠标乱动

jia0511的专栏 2045

推荐一些我觉得好的书,自学的朋友可以参考一下

      我是法律专业毕业的,由于对计算机很有兴趣,所以一直在自学,这里我就介绍一些我自学过程中觉得很不错的书给大家,希望能给同样是自学的朋友提供一些帮助。汇编:      书名:汇编语言      作者:王爽      出版:清华大学出版社      价格:28元      图片:http://www.tup.tsinghua.edu.cn/book/SHOWBOOK.asp?cpbh=008

要饭's Blog 1737

[火鸟视频创作软件] 火鸟视频创作软件答疑解惑

本文介绍了使用补天云火鸟视频创作软件时可能遇到的问题以及对应的解决办法。包括软件依赖的软件包的安装以及录音设备相关的注意事项。

QT性能优化QT原理源码QT界面美化 1279

微信后台开发作业讲解

微信后台开发作业讲解讲师介绍: 向军,项目总监,从事IT行业10年以上,服务过acer、fluke、中国石油、光大银行、丰田汽车、三星电子、保洁公司等企业。精PHP/MySQL、C/C++/VC++、VB、Java、SQL Server、Oracle、JSP、J2EE、JavaScript、XHTML、Ajax、Div+CSS等编程语言和数据库系统。同时具有多年企业培训从事IT行业10年以上,服务...

优快云学习 588

TMS320VC5509A DSP 教学实验箱硬件与软件资源全解析

摘要:蓉华教育自研C5509DSP实验箱针对高校DSP教学痛点,采用TMS320VC5509A主控(200MHz/400MMACS),配备512KFLASH+4MSDRAM存储及丰富外设(ADC/DAC/网口/电机等),通过模块化设计实现硬件可拓展。配套CCS5.5开发环境、30+实验项目(含FFT/滤波/音频处理等)及完整技术文档,支持教学全流程需求。提供三年质保、源码更新及技术社区服务,兼具教学适用性与工程开发价值,适用于高校实验室建设与学生项目开发。(149字)

ronghuanruanchuang的博客 23

C语言课程设计答疑,C语言课程设计参考题目(6).pdf

《C 语言程序设计》课程设计题目及要求一、目的:本次课程设计是《 C 语言程序设计》课程的综合实验,作为课堂教学和课内正常上机实验的补充。通过对《 C 语言程序设计》课程的学习,学生已初步掌握 C 语言的基本概念、 结构化程序设计的基本方法, 但是实际编程和上机调试...

weixin_39615419的博客 265
上一篇: VC++编程技巧三则
下一篇: PowerBuilder 7.0实用技巧八则
wildcatbb
博客等级 码龄25年 0粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值