windows下的窗口程序

VC++创建一个Windows窗口程序 本文为《VC++深入详解》第一章的笔记 创建一个完整的Windows窗口程序主要步骤为 WinMain函数的定义创建一个窗口编写消息循环编写窗口过程函数 窗口的创建: 消息循环: 在创建、显示、更新窗口之后,我们需要编写一个消息循环,不断从消息队列中取出消息,并进行响应。 GetMessage(),Peekmessage()从消息队列中取出消息,并保存在消息结构体中 阅读详情

window:多任务,可以给每个任务分配一个窗口;

               窗口的简单执行过程:鼠标或键盘输入消息A-----系统消息队列(A在CPU中排队,等待CPU处理)------------发送给相应的应用程序的消息队列(A等待应用程序处理)---------应用程序转换一下消息A----------进入窗口过程(如果你需要窗口,窗口已经设定好了,系统说,交给我吧!然后控制权给了系统,系统处理完了之后,将控制权返回给应用程序)-----------应用程序处理完了消息A,接下来处理它的消息队列的下一个了。


                 上面涉及到的而未提及的概念是:回调函数,即系统处理窗口的那一段

               

                  还有一类消息,“走后门”,无需在系统队列中排队,POST直接到应用程序的队列中排队;而SEND在后来系统处理窗口时,加进去。


 


如何编写窗口程序:


1.得到应用程序句柄

2.注册窗口,否则在后面,上面已有提及,系统不给你处理窗口

3.创建窗口对象,你的窗口长成啥样?

4.显示窗口

5.刷新窗口客户区,窗口里面总要有内容吧

6.进入消息循环,你把门面弄好了,就一天一天的等着顾客(消息)敲门,该干嘛干嘛,干完了继续等

7.有消息到,谁负责这个柜台(窗口)?谁就找系统大哥处理,然后自己再处理一下返回给客户(消息)

8.如果用户走了(关闭窗口),负责那个窗口的伙计就可以休息了



windows系统还提供了许多货物(资源)给我们,比如说菜单啊、加速键啊、图标啊、对话框啊、位图啊、字体啊、版本信息啊等等等。

这一下你的门面可以装潢一下了



如果你不想要窗口也可以,这一下你跟系统大哥的关系就疏远了很多了,不过你可以更加自由,做起事来也比较快。

-------------------控制台程序----------------------


32位的PE(不知道的可以BAIDU一下)程序。

控制台程序不多说了。




可以的话给自己弄一个动态链接库,把自己喜欢的代码加进去,还可以升级啊。




-----------COM----------------给你的程序添加组件




--------------------注册表?我还是没有搞懂,反正你要使用系统服务的话就得找系统大哥注册一下,不然他就问你:小样,你是谁啊?-----------------------




---------------网络编程?使用windows socket 接口,与BIOS DOS  不同又类似----------------------------

-------------------不过好像是谁谁谁弄了一个新的接口,因为前面那个比较接近底层,用socket比较累--------

---------------------B/S模式--------------C/S模式-----------------好像现在的云计算也是----------------------李彦宏说云计算是新瓶装旧酒;马老板说:我不懂技术活,不过我相信云计算辉给大家带来极大地便利-----------------------




今天就写到这儿了!







windows窗口程序设计 windows窗口程序设计 ** 一:引言 二:目的 (1)了解 windows操作系统应用程序开发的基本概念,win32 API函数、消息与事件驱动; ( 2)掌握WinMain函数的基本框架,窗口定义、窗口创建、消息循环及窗口过程函数; 三:创建步骤 1.定义winmain函数 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) 2. 窗口的创建 (1. 阅读详情

相关推荐

一个基于Windows API的简单窗口程序

了解Windows程序内部运行机制与做一个基于Windows API的简单窗口程序 目录 ​ 目的 ​ 开发环境 ​ 初识Windows ​ 总结 目的 1、了解Windows操作系统应用程序基础原理概念; 2、掌握WinMain函数定义,创建窗口,消息循环及窗口过程函数;与动手做一个简单的Windows窗口程序 开发环境 1、Visual Studio 2017 初识Windows 学习Windows窗口应用程序的第一步是了解WinMain函数 同DOS程序相同,Windows

TBMmagic的博客 1787

第十五周任务二(窗口式程序开发之——分数类)

* 问题描述: 设计分数类,开发一个窗口式程序,可以完成分数的四则运算 * (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者

印迹 1000

Windows 窗口程序结构详解

文章目录引言一、一些基础知识的介绍二、Windows程序的结构三、第一个窗口程序的流程四、代码实现五、运行平台 引言 众所周知,我们只要使用Windows的操作系统,必然离不开Windows的界面程序,无论是用什么语言(c 、c++、汇编、或是易语言),什么编译器,只要是带图形界面的PE文件,运行时必然带有Windows子系统,也就是说,遵循Windows界面程序的结构。 那么,我们如果掌握了这...

peng1874的博客 2062

windows 的最简单的窗口程序的处理流程

For example, suppose the user presses the left mouse button. This causes a chain of events: The operating system places a WM_LBUTTONDOWN message on the message queue. Your program calls the

qq_27361945的博客 603

写一个基于Windows API简单窗口的程序

Window API程序设计(窗口创建) 目的 1、了解 windows操作系统应用程序开发的基本概念,win32 API函数、消息与事件驱动; 2、掌握WinMain函数的基本框架,窗口定义、窗口创建、消息循环及窗口过程函数; 步骤 一、窗口的创建 二、消息循环 三、过程函数 四、窗口程序实例 五、总结 ...

iostreamhvoid的博客 1133

分离与合体题解(区间DP)

题目: 经过在机房里数日的切磁,LYD从社神牛那里学会了分离与合体,出关前,杜神牛给了他一个测试 杜神牛造了个区域,它们紧邻着排成了一行,编号1-n。在这經个区域里都放着一把OI界 的金钥匙,每一把都有一定的价值,LYD当然想得到它们了。然而杜神牛规定LYD不可以一下子 把它们全部拿走,而是每次只可以拿一把。为了尽快地拿到所有的金钥匙,LYD自然就用上了刚学的分离与合体特技。 开始LYD可以选择从1~n-11~n-11~n-1的任何一个区域(记为K)进入,进入后LYD会在K区域发 生分离,从而分离为两个小L

cqbz_lipengcheng的博客 370

Windows窗口程序详解

窗口程序示例程序comment。

weixin_57164754的博客 784

技术文档的语言表达:简洁、准确与易懂的平衡艺术

技术文档的语言表达不仅要简洁、准确,还需要能够打破技术壁垒,使不同背景的读者都能理解。这是一项需要技巧和经验的工作,它要求技术作者既要具备扎实的专业知识,又要具备清晰的表达能力。通过不断打磨语言的简洁性、准确性和易懂性,我们能够创造出一份高质量的技术文档,让知识的传递不再受限于语言的障碍。

人心有反复,好在山水有重逢。 4677

Windows窗口程序

控制台程序ConsoleDOS程序,没有窗口,通过DOS窗口执行入口函数: main窗口程序拥有自己的窗口,可以与用户交互入口函数: WinMain库程序存放代码、数据的程序,执行文件可以从中取出代码执行或获取数据静态库程序:扩展名LIB, 在编译链接程序时,将代码放入到执行文件中静态库没有入口函数 --> 没法执行 --> 没法进入内存动态库程序:扩展名DLL,在文件执行时从中获取代码动态库有入口函数–>可以执行,但是不能独立执行( 必须依附其他程序 )入口函数: DLLMain编译器CL.EXE 将源

wkk的博客 1294

PV-RCNN实战:如何在KITTI数据集上实现3D目标检测(附完整代码解析)

本文提供了在KITTI数据集上实战PV-RCNN 3D目标检测的完整指南,涵盖环境配置、数据预处理、模型训练与评估全流程。通过详细的代码解析和调参技巧,帮助读者掌握这一融合点与体素优势的经典3D目标检测模型,并实现从理论到实践的跨越。

weixin_29098391的博客 403

niushop靶场漏洞查找-文件上传漏洞等(超详细)

发现报错,而且这个报错十分熟悉,与我们所学的sqli报错注入特别像。这里查询到后面的url有且仅有一个,目测估计是后台。上传的图片是包含一句话木马的图片。发现获取到了webshell。实战漏洞-niushop。

qq_59020256的博客 1727

一个简单的windows窗口程序

一个简单的windows窗口程序创建一个windows窗口程序的步骤具体实现代码实现效果 创建一个windows窗口程序的步骤 定义窗口类 注册窗口类 创建窗口 更新显示窗口 建立消息循环 处理消息 具体实现代码 #include "framework.h" #include "第一个windows窗口程序.h" #include <windows.h> #define MAX_LOADSTRING 100 // 全局变量: HINSTANCE hInst;

CHL的博客 6907

基于Dijkstra算法的共享单车调度优化系统设计与实现

根据最新统计数据,全球共享单车市场规模已超过300亿美元,中国作为最大的共享单车市场,日订单量超过5000万次。Dijkstra算法由荷兰计算机科学家Edsger W. Dijkstra于1956年提出,用于解决带权有向图中的单源最短路径问题。本文详细介绍了基于Dijkstra算法的共享单车调度优化系统的设计与实现。本文将详细介绍基于Dijkstra算法的共享单车调度优化系统的设计与实现,采用Java 17、Spring Boot 3.x等最新技术栈。

2201_76125393的博客 618

c语言windows窗口程序,C语言编写windows窗口程序

还在为自己写的黑框框程序而烦扰吗?想不想写一个想windows窗口程序?很简单,只要有C语言的基础。经过简单的学习,就能投入windows的怀抱了!!!:)第一步,建立一个win32工程:我使用的是Code::Blocks.首先要建立一个win32工程。Flie->New->Project 如下图: CODEBLOCKS 创建win32工程选择上面的win32 GUI PROJECT....

weixin_36182916的博客 4892

YOLOv8改进-利用图像去雾网络UnfogNet提升检测精度的探索【附核心模块代码】

YOLOv8-UnfogNet联合模型的提出为目标检测和图像去雾领域提供了一个新的思路。通过将图像去雾网络和目标检测网络结合,不仅可以提升在恶劣天气下的目标检测精度,还能够为实际应用中的自动驾驶、监控安防等领域带来更强的鲁棒性和适应性。随着去雾技术和目标检测算法的不断发展,我们相信,这种联合方法将在多个领域中获得更加广泛的应用,并为进一步提升图像质量和检测精度做出重要贡献。

一键难忘的博客 3202

SpringBoot集成auth0-jwt插件,实现jwt的token生成、校验,用户登录验证,配置拦截器拦截请求校验token功能

该文章介绍了SpringBoot如何集成auth0-jwt插件,实现jwt的token生成、校验,用户登录验证,配置拦截器拦截请求校验token功能. JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全地传输信息。它以JSON对象的形式存在,并使用数字签名来验证信息的完整性和真实性。JWT由三部分组成,分别是Header、Payload和Signature。

yunnuo的博客 1246

Windows SDK编程之一 窗口示例程序

/***************************************************** Windows SDK编程之一  窗口示例程序******************************************************//*Win32应用程序框架主要由"初始化窗口类","窗口注册类","窗口的创建"以"窗口消息函数"等组成*/#include "s

布衣坊 2223

QGC4.0.11界面修改

QGC4.0.11。

超维空间科技的博客 2465

windows API窗口程序

目的 了解 windows操作系统应用程序开发的基本概念,win32 API函数、消息与事件驱动; 掌握WinMain函数的基本框架,窗口定义、窗口创建、消息循环及窗口过程函数; 过程 在visual studio2019 下创建基于windows平台的c++桌面窗口应用程序,待成功创建窗口后,使用回调函数处理窗口信息,具体步骤: 定义全局变量,并对函数做前向声明; 初始化全局字符串; 执行应用程序初始化; 实现主消息循环; 构建函数注册窗口类; 构建函数 保存实例句柄并创建主窗口; 构建函数 处理主窗口

kelezaji的博客 1503

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

模仿dos窗口下的windows窗口程序

本程序含有不明bug,有时候退格之后,再击键会不听使唤。。。也许是因为,windows其他程序对内核的占用而导致了本程序部分键盘码丢失吧,具体原因不明。 #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINST

saca0003的专栏 849

Statistics and Machine Learning Toolbox

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

[学习笔记] Windows编程——窗口和消息 ——(三)窗口程序

每个窗口都有一个关联的窗口程序(一个函数),用于处理发送到该类的所有窗口实例或发送到所有窗口实例的所有消息。窗口外观和行为都取决于窗口程序对这些消息的响应。

cxsydzn的博客 1157

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Windows窗口程序的开发1_20190913

一、Windows第一个窗口程序开发:入口函数WinMain。 1、注册窗口类 2、创建窗口 3、显示窗口 4、更新窗口 5、消息循环 6、窗口过程函数 二、了解窗口类WNDCLASS 窗口类是系统用作创建窗口的模板的一组属性。每个窗口都是窗口类的成员。所有窗口类都是特定于进程的。 //WNDCLASS结构体包含一个窗口类的全部信息,定义一个窗口类确定窗口的属性: type...

weixin_41211961的博客 728

windows合并窗口,不同程序嵌入窗口

在实际项目开发中,往往需求和实现方式千奇百怪,有时候会用不同的语言去实现不同的需求。本次实现在windows系统中,不同程序之间的窗口嵌套。

qq_34215018的博客 1281

windows应用程序开发系列二:windows窗口应用程序开发的步骤

在说今天的内容之前呢,我先说一下我的笔记风格,我的笔记分为两部分,第一部分进行理论知识讲解,第二部分进行代码的实例演示,我会详细注释windows程序开发中新出现的每一个函数,每一个参数,但是如果笔记中以前出现过相同的代码,那么我将不会再次注释,希望大家理解我这也是为了节省时间,讲解更多的内容。从今天开始,我将带领大家一步一步的走进windows应用程序开发的殿堂,让大家逐渐认识从普通的软件到刺激

wangping623的专栏 2673
上一篇: 初识 Windows Application
下一篇: 嗮“码”
codeferever
博客等级 码龄17年 19粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值