VS2010 CUDA 5.5 Win7 64位配置以及项目创建配置

win764位+NVIDIA Quadro 600+VS2010+anaconda+cuda5.5.20 成功配置使用GPU 本人电脑属性: win7旗舰版 64位 12G内存 NVIDIA Quadro 600双显卡 安装步骤: 0、由于本人失败了n次,所以这次是刚装好系统的状态。 1、先安装VS2010,添加环境变量Path: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files (x86)\Microsof 阅读详情

一.安装CUDA5.5以及配置VS助手

1、安装之前必须确认自己电脑的GPU支持CUDA。在设备管理器中找到显示适配器(Display adapters),找到自己电脑的显卡型号,如果包含在http://www.nvidia.com/object/cuda_gpus.html的列表中,说明支持CUDA。

安装CUDA之前最好检查一下自己电脑的显卡驱动版本,版本过老的话,需要更新。有时候安装完毕CUDA之后,运行6中的deviceQuery程序时会出错,请优先考虑显卡驱动的问题。

2、下载NVIDIA CUDA Toolkit ( http://www.nvidia.com/content/cuda/cuda-downloads.html),本人下载的是desktop版本win64

CUDA5.0以上已经将ToolKit和SDK等整合在了一起,因此只需下载一个安装文件即可。

3、首先确认自己已经安装Visual Studio 2010 后再安装助手Visual Assist X。这里Visual Assist X 对于使用CUDA 不是必须的,但为了使程序编写更为方便,这里推荐安装。

4、CUDA的默认安装目录为:C:\Program Files\NVIDIA GPUComputing Toolkit\ 这里推荐使用默认的安装路径,不需更改。

5、安装完成后,在系统变量环境里面会发现新添加了两个环境变量

CUDA_PATH

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5

CUDA_PATH_V5_5

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5

 

且在系统变量的path也会自动添加

C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v5.5\bin;C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v5.5\libnvvp;C:\Program Files (x86)\NVIDIACorporation\PhysX\Common;

 

 

 

6、此时CUDA已经安装成功。可以在DOS命令下,测试运行显示GPU硬件配置和cuda属性例子程序deviceQuery。路径在如下位置:

C:\ProgramData\NVIDIA Corporation\CUDASamples\v5.5\Bin\win32\Release

 

Dos下的命令提示符

dir查看文件夹下的目录

dir/a:h 查看当前目录的隐藏文件,因为ProgramData是隐藏文件。

cd .. 返回上一级文件夹, cd file 进入file 文件夹

 

运行bandwidthTest示例程序,结果如下:

 

双击桌面上的图标,运行cuda自带的例子。

 

7、CUDA C/C++关键字及函数高亮显示

这个设置是让Visual Studio2010 在编辑.cu 文件时,把.cu 文件里的C/C++语法高亮。设置方法:在Visual Studio 2010 的菜单依次选“ Tools|Options|TextEditor|File Extension(工具|选项|文本编辑器|文件扩展名)”,在该窗口中将“Editor(编辑器)”下拉框选择“Microsoft Visual C++”,在“Extension(扩展名)”文本框中输入cu 点击“Add(添加)”按钮,重复工作把cuh 添加为Visual C++类型,添加完成后点击“OK(确定)”按钮,如下图所示:

 

为了让CUDA 的关键字,如__device__、dim3 等的文字高亮,需按如下步骤设置:
将C:\ProgramData\NVIDIA Corporation\CUDASamples\v5.5\doc\syntax_highlighting\visual_studio_8 目录下的usertype.dat 文件复制到C:\ProgramFiles\Microsoft Visual Studio10.0\Common7\IDE\ 目录下(对x64 位Win7 系统为X:\Program Files(X86)\Microsoft Visual Studio10.0\Common7\IDE\)。重启Visual Studio2010 后打开.cu 文件,CUDA 的关键字应该变成蓝色了。

 

8、CUDA 函数高亮,及CUDA 函数输入代码提示

实现这个功能需要使用Visual Assist X,如果没有安装支持Visual Studio 2010的Visual Assist X,这部分功能无法实现。这里只是为使编写代码更加方便,对CUDA 程序的开发无实质性障碍。
如果已经安装VisualAssist X,可以通过以下两步实现需要的功能。
(1)使Visual Assist X 支持CUDA 函数高亮和代码完成
在VisualStudio 2010 的菜单里依次选择:“ VAssistX|Visual assistX Options|Projects|C/C++Directories”,在该界面的“Platform”下拉框中选择Custom,在“Show Directories for”下拉框中选择Other include files,然后在下面的输入框里,新建、添加如下路径,如图:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc

 

(2)使Visual Assist X 实现.cu 文件高亮和代码完成功能,需要编辑注册表。在修改注册表时,为避免带来不必要的错误请先关闭Visual Studio 2010。使用Win+R组合键打开“运行”窗口,键入入regedit 命令(register edit 的缩写)打开注册表,找到如下位置:HKEY_CURRENT_USER\Software\WholeTomato\Visual Assist X\VANet10。在右边找到ExtSource 项目,鼠标右键选修改,在原有文字后添加如下文字:.cu;.cuh; 确定后关闭注册表。重新打开Visual Studio 2010,Visual Assist X 便开始支持.cu 及.cuh 文件的语法高亮及代码完成。此时.cu 文件的CUDA 函数是高亮的,使用函数名符号就会自动提示函数全称,参数类型等信息。

修改注册表时,请把vs关闭,否则修改不成功。

 

二.创建cu文件测试示例

在Visual Studio 2010 菜单选择“file|new|project(文件|新建|工程)”,在打开的新建项目窗口的“已安装的模板”一栏中选择“NVIDIA|CUDA”,类型选择为“CUDA 5.5Runtime”,见下图。

 

在“名称”中输入工程名后,点击确定。cuda自动提供的kernel.cu 并行加法示例进行编译运行。结果如下:

在此基础上可以方便的进行cuda的代码测试。

三.在已有的C++项目中添加cu文件

我们往往需要在已建成的vc项目中,加入gpu的并行算法,以提高算法的效率。在此介绍如何在已有的项目中添加cu文件和配置过程。在cudasample中也提供了具体的参考示例,路径如下:

C:\ProgramData\NVIDIACorporation\CUDA Samples\v5.5\0_Simple\cppIntegration

运行cppIntegration_vs2010.sln,查看其配置。

 

1) 新建一个Win32控制台项目cppcuda;

2) 然后在项目中添加空白cu文件:在源文件处点击右键,添加》新建项

选择的文件类型是CPP文件,在写名称的时候可以直接写为.cu文件,也可以写成.cpp文件之后再进行重命名。此处写为add_kernel.cu.

3)  在项目名称右键选择生成自定义(B)…:

 

选择CUDA 5.5.(targets,.props)。

 

4) 在add_kernel.cu文件处点击右键,选择属性》配置属性》项类型下拉菜单中选择 CUDA C/C++

5)在项目》cppcuda属性页中,设置如下红色圆圈内的参数

更改配置属性》常规》字符集:

在 C/C++》常规》附加包含目录中添加绝对路径:

C:\ProgramData\NVIDIACorporation\CUDA Samples\v5.5\common\inc

 

C/C++》代码生成》运行库改为 多线程调试

 

链接器》常规》附加库目录中添加

$(CUDA_PATH_V5_5)\lib\$(Platform)

 

链接器》输入》附加依赖项 中输入

cudart_static.lib

6)以上配置完成之后,可以在空白的addcuda.cu开头添加如下两行代码

#include"cuda_runtime.h"

#include"device_launch_parameters.h"

 

7) 在cpp 与cu文件建立连接的函数定义必须用extern "C"形式开头,如

extern"C" double addnum(int *c, const int *a, constint *b, unsigned int size);

addnum这个函数具体在cu文件实现并行加法的功能,在cpp文件中调用。

 

8) 下面给出cppcuda具体的代码

如cppcuda.cpp:

 

#include"stdafx.h"

 

extern"C" double addnum(int *c, const int *a, const int *b, unsigned intsize);

 

int_tmain(int argc, _TCHAR* argv[])

{

         const int arraySize = 5;

         const int a[arraySize] = { 1, 2, 3, 4,5 };

         const int b[arraySize] = { 10, 20, 30,40, 50 };

         int c[arraySize] = { 0 };

         addnum(c, a, b, arraySize);

 

         return 0;

}

 

如add_kernel.cu:

 

#include"cuda_runtime.h"

#include"device_launch_parameters.h"

#include<stdio.h>

 

cudaError_taddWithCuda(int *c, const int *a, const int *b, unsigned int size);

 

__global__void addKernel(int *c, const int *a, const int *b)

{

         int i = threadIdx.x;

         c[i] = a[i] + b[i];

}

 

extern"C" double addnum(int *c, const int *a, const int *b, unsigned intsize)

{

         cudaError_t cudaStatus = addWithCuda(c,a, b, size);

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"addWithCuda failed!");

                   return 1;

         }

 

}

 

cudaError_taddWithCuda(int *c, const int *a, const int *b, unsigned int size)

{

         int *dev_a = 0;

         int *dev_b = 0;

         int *dev_c = 0;

         cudaError_t cudaStatus;

 

         // Choose which GPU to run on, changethis on a multi-GPU system.

         cudaStatus = cudaSetDevice(0);

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaSetDevice failed!  Do you havea CUDA-capable GPU installed?");

                   goto Error;

         }

 

         // Allocate GPU buffers for threevectors (two input, one output)    .

         cudaStatus =cudaMalloc((void**)&dev_c, size * sizeof(int));

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaMalloc failed!");

                   goto Error;

         }

 

         cudaStatus =cudaMalloc((void**)&dev_a, size * sizeof(int));

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaMalloc failed!");

                   goto Error;

         }

 

         cudaStatus =cudaMalloc((void**)&dev_b, size * sizeof(int));

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaMalloc failed!");

                   goto Error;

         }

 

         // Copy input vectors from host memoryto GPU buffers.

         cudaStatus = cudaMemcpy(dev_a, a, size* sizeof(int), cudaMemcpyHostToDevice);

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaMemcpy failed!");

                   goto Error;

         }

 

         cudaStatus = cudaMemcpy(dev_b, b, size* sizeof(int), cudaMemcpyHostToDevice);

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaMemcpy failed!");

                   goto Error;

         }

 

         // Launch a kernel on the GPU with onethread for each element.

         addKernel<<<1,size>>>(dev_c, dev_a, dev_b);

 

         // Check for any errors launching thekernel

         cudaStatus = cudaGetLastError();

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"addKernel launch failed: %s\n", cudaGetErrorString(cudaStatus));

                   goto Error;

         }

 

         // cudaDeviceSynchronize waits for thekernel to finish, and returns

         // any errors encountered during thelaunch.

         cudaStatus = cudaDeviceSynchronize();

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaDeviceSynchronize returned error code %d after launchingaddKernel!\n", cudaStatus);

                   goto Error;

         }

 

         // Copy output vector from GPU bufferto host memory.

         cudaStatus = cudaMemcpy(c, dev_c, size* sizeof(int), cudaMemcpyDeviceToHost);

         if (cudaStatus != cudaSuccess) {

                   fprintf(stderr,"cudaMemcpy failed!");

                   goto Error;

         }

 

Error:

         cudaFree(dev_c);

         cudaFree(dev_a);

         cudaFree(dev_b);

 

         return cudaStatus;

}

win10+MATLAB2016a+VS2015+MatConvNet配置详解 4.23 补:MatConvNet只需要配置一次,不同的算法,直接把配置好的MatConvNet,路径下的 MATLAB/mex 的文件拷贝到需要运行的算法对应位置处即可,不需要每次都配置 MatConvNet是实现深度学习中卷积神经网络(CNN)的MATLAB工具箱,简单且高效,在文件中有许多已经训练好的近年来比较有名卷积神经网络实例及优化方法,可以用于图像分类、分割、人脸识别... 阅读详情

相关推荐

VAX注册表信息全自动清理工具.tar.gz

自动查找并清理VA_X卸载后遗留的注册表信息。用于解决VA_X重装不能用

【免费下载】 VAX注册表信息全自动清理工具:轻松解决重装难题

VAX注册表信息全自动清理工具:轻松解决重装难题 【下载地址】VAX注册表信息全自动清理工具 本仓库提供了一个名为“VAX注册表信息全自动清理工具.tar.gz”的资源文件,该工具旨在自动查找并清理VA_X卸载后遗留的注册表信息。通过使用此工具,您可以有效解决VA_X重装后无法正常使用的问题 ...

gitblog_09810的博客 874

Visual Studio2010 中配置CUDA详细图解

本资源详细描述了在VS2010中如何配置CUDA,使其可以进行CUDA C编程。

【亲测免费】 推荐使用:一键高效清理,让VA_X焕然一新 —— VAX注册表信息全自动清理工具

推荐使用:一键高效清理,让VA_X焕然一新 —— VAX注册表信息全自动清理工具 【下载地址】VAX注册表信息全自动清理工具 本仓库提供了一个名为“VAX注册表信息全自动清理工具.tar.gz”的资源文件,该工具旨在自动查找并清理VA_X卸载后遗留的注册表信息。通过使用此工具,您可以有效解决VA_X重装后无法正常使用的问...

gitblog_09794的博客 980

va_x 全版本支持2017,附带清理旧激活注册机

va_x 全版本可用,最新支持到2017,附带清理旧激活注册,亲测可用

Visual Assist X添加默认包含路径的注册表项

相关介绍可以参考我的这篇博客: http://blog.csdn.net/luofl1992/article/details/8797050 类似于CUDA的,想要给Visual Assist X添加默认包含路径和文件名后缀的均可以参考进行设置。

Visual Assist X无法继续使用的解决办法。

经过自己好几个小时的查找资料,终于解决了这个问题,为了使同行们遇到这样的问题能够顺利解决记录下来供参考。 1、进入VS2010。“工具”—“扩展管理器”中“卸载”VA_X_Setup1827。 2、进入注册表。删除HKEY_LOCAL_MACHINE\SOFTWARE\Licenses及所有子项。和HKEY_CURRENT_USER\Software\Whole Tomato及所有子项。 3

wen_eric的专栏 7444

Unity 2022.3.3 LTS + Visual Studio 2022:手把手教你复刻《吸血鬼幸存者》核心战斗(附完整项目源码)

本文详细介绍了如何使用Unity 2022.3.3 LTS和Visual Studio 2022从零构建《吸血鬼幸存者》式战斗系统。通过图文开发教程,涵盖对象池优化、ECS架构雏形、2D物理碰撞控制等关键技术,帮助开发者高效复刻这款热门游戏的自动攻击与海量刷怪机制。

weixin_30721077的博客 458

cuda6.5 vs2010

下载网址:https://developer.nvidia.com/cuda-downloads 系统:wind7 64位 开发平台 vs2010  显卡:NVIDIA(英伟达) GeForce GT 640 cuda6.5 前言:我的只安装上了cuda toolkit, cuda samples没有安装成功(如果有谁实验成功请分享) 安装步骤:     运行安装程序,弹出安装

tjusxh的专栏 3605

HTTPDebugger实战:iTunes登录协议抓包与签名验证全解析

HTTPS抓包是分析客户端与服务端交互的重要手段,其原理是通过中间人证书解密TLS流量,从而观察请求与响应细节。在调试iTunes登录协议时,抓包能帮助我们定位签名验证失败、x-timestamp过期等棘手问题。然而,许多教程中常见的mumu模拟器抓包、fiddler手机抓包或charles抓包unknown问题,往往让新手陷入工具陷阱。本文以HTTPDebugger为切入点,从TLS握手到认证请求,系统拆解iTunes登录协议的关键字段与签名机制,覆盖证书配置、进程监听、域名过滤等实战经验,辅以Apple

weixin_30768881的博客 196

MCSDK5.4.8电机库双电阻采样适配:从扇区判断到固定采样的重构实践

本文详细解析了MCSDK5.4.8电机库中双电阻采样技术的重构实践,从扇区判断到固定采样的关键步骤。通过硬件配置优化、核心文件重构及电流读取函数改造,实现高效稳定的电机控制,特别适用于成本敏感型项目。文章还提供了占空比限制计算、参数调整及常见问题排查等实用技巧,助力工程师快速掌握两电阻采样方法。

weixin_42532938的博客 281

VS2010 CUDA 5.5 VA_X Win7 64位配置

一.安装CUDA5.5以及配置VS助手 1、安装之前必须确认自己电脑的GPU支持CUDA。在设备管理器中找到显示适配器(Display adapters),找到自己电脑的显卡型号,如果包含在http://www.nvidia.com/object/cuda_gpus.html的列表中,说明支持CUDA。 安装CUDA之前最好检查一下自己电脑的显卡驱动版本,版本过老的话,需要更新。有时候安装

Gone_HuiLin的博客 1100

Uniapp+Vue3+Monorepo:如何优化你的前端开发流程(附完整配置代码)

本文详细介绍了如何利用Uniapp+Vue3+Monorepo技术栈优化前端开发流程,提升代码可维护性和团队协作效率。通过Monorepo架构实现依赖管理智能化、代码复用最大化和构建流程统一化,结合完整配置代码和实战指南,帮助开发者快速构建高性能跨端应用。

weixin_29011993的博客 453

Windows7+cuda 7.5+vs2010

Windows7+cuda 7.5+vs2010 安装环境: os:windows7 显卡:gt 740 vs2010 其他版本的安装配置过程类似。 1.查看本机配置,查看显卡类型是否支持NVIDIA GPU选中计算机-->右键属性-->设备管理器-->显示适配器:CUDA GPUs可以查到相应显卡的compute capability;

liuhuicsu的博客 2003

WorkBuddy 集成 飞书CLI,全程10分钟,丝滑无比,老板要注意了...

飞书CLI实测:10分钟实现AI操控飞书办公 飞书CLI作为命令行工具,让用户通过简单命令完成飞书各项操作。本文记录了从安装到使用的完整过程:一键安装仅需10分钟,支持200多条命令覆盖飞书全部功能,与AI结合后可实现自然语言办公。实测中成功用语音指令创建了7天发文计划日程,验证了其便捷性。虽然首次认证存在超时问题,但整体体验流畅。该工具将复杂操作简化为自然语言指令,大幅提升办公效率,特别适合需要频繁使用飞书的用户。后续还将探索更多自动化办公场景。

三棱球的专栏 1143

[ROS] rviz 可视化工具

[ROS] rviz 可视化工具 摄像头没讲 文章目录[ROS] rviz 可视化工具1. todo2. todo*. 参考*. 问题解决*. rough 1. todo 2. todo *. 参考 *. 问题解决 *. rough roscore + rviz

weixin_37834269的博客 2051

【cuda入门之一】 Win8.1 64位 VS2012 CUDA 6.5配置

VS2010 CUDA 5.5 Win7 64位配置以及项目创建配置 一.安装CUDA5.5以及配置VS助手 1、安装之前必须确认自己电脑的GPU支持CUDA。在设备管理器中找到显示适配器(Display adapters),找到自己电脑的显卡型号,如果包含在http://www.nvidia.com/object/cuda_gpus.html的列表中,说明支持CUDA。 安装CUDA之

phoebe 2428

视频压缩的工作原理

当你正在观看你最喜欢的节目,出现缓冲的时候,这是什么原因?当 Wi-Fi 带宽不足以下载传输视频流所需的数据时,就会发生缓冲。也有可能是视频网站发布了未压缩版本的视频文件,因此视频文件太大而无法流畅地流式传输。在高清模式下,图像分辨率为1080x1920像素,如果我们想象一个视频由许多这些图像组成,称为帧,那么 Wi-Fi 连接必须多快才能播放24帧/秒?答案是超1000兆,没错。由于每一帧都是48兆比特的数据,它实际上需要48×24每秒兆比特 (Mbps) 以观看视频24帧/秒。

学以致用 知行合一 1280

Win7 64位系统,VS2010环境下编译cuda-convnet指南

2013-12-10 23:52 2377人阅读 评论(54) 收藏 举报 注意: 1. 本文给出的方法的最低要求为win7 64位系统和vs2010,其他需要装的软件/第三方库都在     正文中给出了链接。当然,这些软件/函数库都是正版的和免费的。 2. 对于已经装有Intel(R) C++ Studio XE 2013的系统,推荐basaltZhang的帖子。 3. 本文采用的

Good As You 1363

2025年软件测试职业院校技能大赛—ERP管理平台-采购管理采购入库模块测试用例

竞赛对接软件测试相关标准,以“ERP管理平台” 为被测系统,围绕软件测试领域的主流技术及工具,考查选手面 对实际问题的综合分析能力,对测试文档、测试用例的设计能力, 对单元测试、自动化测试、性能测试、接口测试等测试工具及方 法的掌握程度,检验选手团队协作能力、组织规划能力、方法运用能力等。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 402

计算机控制技术及应用

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

VS2010和CUDA4.1的配置

最近开始用CUDA,下的是4.0版本的,配置时参考了之前几篇文章 http://blog.csdn.net/mmjwung/article/details/6833272,http://blog.csdn.net/bendanban/article/details/6435314,http://hpcbbs.it168.com/thread-7057-1-1.html, 结合自己的情况

H成长之路 300

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

CUDA4.0 + VS2010 + Win7 64 + VAssistX 安装经验(转)

参考了很多网上的教程,自己摸索的几天CUDA4.0安装完毕。 再次感谢前辈的各种教程,现把我的安装方法提供出来,给还在探索的新手参考一下。 我的环境:Win7 64旗舰 ,GTX580 + ATI5450,使用双显卡为了单机调试,使用ATI卡为了防止搞不清楚程序在那个卡上跑CUDA。 要安装的是:CUDA 4.0 64位 + VS2010旗舰 基本安装:  1. 显卡驱动

adam_tu的专栏 2036

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: matplotlib画图
下一篇: keras Regressor 回归
龚慧林
博客等级 码龄14年 77粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值