ACE应用程序链接错误 error LNK2019 的解决办法

vs2010上进行ACE编程常见编译错误解决方法 在vs2010上进行ACE编程,老是出现编译错误, 1>------ 已启动生成: 项目: Win32Project3, 配置: Debug Win32 ------ 1>  a.cpp 1>a.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall ACE_Main_Base::ACE_Main_Ba 阅读详情

ACE应用程序链接错误  error LNK2019 的解决办法
 

读者水平:初级
摘要:文本简要指出如何正确编译和链接ACE应用程序。

对于新手来说,ACE开发环境,会是一团谜团,如何正确配置开发者机器,快速体验ACE,
就是本系列文章的目的。本文仅解决如何解决LNK2019错误

环境:
  

   ACE版本 5.5.1
     操作系统 Windows xp professional sp2
     开发环境 Microsoft Visual C++ 2005   77626-009-0000007-41235



下面的代码是服务的主程序

// @file: RegisterServer.cpp :
// @description: Defines the entry point for the GameService Daemon application.
// @date: 2006-07-06
// @author: Jiangtao<2005119@gmail.com>
#ifdef _DEBUG
#define    ACE_NDEBUG 0
#define    ACE_NTRACE 0
#endif
#include 
" stdafx.h "
#include 
" ACE/Filecache.h "
#include 
" ACE/Log_Msg.h "
#include 
" ACE/OS_NS_signal.h "
#include 
" ACE/Service_Config.h "

#ifdef ACE_HAS_SIG_C_FUNC
#pragma message (
" ACE_HAS_SIG_C_FUNC " )
extern   " C "
{
#endif  /* ACE_HAS_SIG_C_FUNC */

 
//  call exit() so that static destructors get called
  static   void
  handler (
int )
 {
  delete (ACE_Filecache 
* ) ACE_Filecache::instance ();
  ACE_OS::exit (
0 );
 }

#ifdef ACE_HAS_SIG_C_FUNC
}
#endif  /* ACE_HAS_SIG_C_FUNC */

int  ACE_TMAIN( int  argc, ACE_TCHAR *  argv[])
{
 ACE_DEBUG((LM_INFO,ACE_TEXT(
" 启动服务/n " )));
 ACE_Service_Config daemon;

 ACE_OS::signal (SIGCHLD, SIG_IGN);

 
//  SigAction not needed since the handler will shutdown the server.
 ACE_OS::signal (SIGINT, (ACE_SignalHandler) handler);
 ACE_OS::signal (SIGUSR2, (ACE_SignalHandler) handler);

 
if  (daemon.open (argc, argv, ACE_DEFAULT_LOGGER_KEY,  0 )  !=   0 )
  ACE_ERROR_RETURN ((LM_ERROR, 
" %p/n " ,  " open " ),  1 );

 
//  The configured service creates threads, and the
 
//  server won't exit until the threads die.

 
//  Run forever, performing the configured services until we receive
 
//  a SIGINT.

 
return   0 ;
}

服务加载的配置文件

 


###############################################################################
# file svc.conf
###############################################################################

dynamic GameService Service_Object 
*  GameService: _make_GameServer_T() active 

 


出错提示:

 

----- Build started: Project: RegisterServer, Configuration: Debug Win32 ------
Compiling
RegisterServer.cpp
Linking
RegisterServer.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) int __cdecl ace_os_wmain_i(class ACE_Main_Base &,int,wchar_t * * const)" (__imp_?ace_os_wmain_i@@YAHAAVACE_Main_Base@@HQAPA_W@Z) referenced in function _wmain
RegisterServer.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static int __cdecl ACE_Service_Config::open(int,wchar_t * * const,wchar_t const *,int,int,int)" (__imp_?open@ACE_Service_Config@@SAHHQAPA_WPB_WHHH@Z) referenced in function "int __cdecl ace_wmain_i(int,wchar_t * * const)" (?ace_wmain_i@@YAHHQAPA_W@Z)
D:/ACE_OUTPUT/Game//RegisterServerd.exe : fatal error LNK1120: 2 unresolved externals
Build log was saved at "file://d:/My Sources/RegisterService/RegisterServer/Debug/BuildLog.htm"
RegisterServer - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

 

问题分析
出错信息显示,不能解析函数ace_os_wmain_i()以及  ACE_Service_Config::open()。
从这里可以看出,链接器需要UNICODE版本的ace库,而我们在生成ACE的时候,并没有生成宽字符
的UNICODE版本。

解决办法:
打开项目的属性页,找到配置属性,在字符集中,选择多字节字符集。再重新编译,问题解决。

 
VC++ MFC开发异常排查实战:从运行时崩溃到界面行为异常的解决方案 在Windows桌面应用开发中,运行时异常和内存管理是开发者常面临的核心挑战。其原理通常涉及资源生命周期管理、消息循环机制与线程安全等底层机制。掌握这些技术能显著提升应用稳定性与性能,尤其在维护大型遗留系统时价值凸显。本文聚焦VC++ MFC框架下的实战场景,通过分析内存泄漏、多线程UI访问等典型热词问题,系统讲解从依赖库冲突到界面绘制异常的排查路径,帮助开发者快速定位如‘0xc000007b’启动错误、CDockablePane停靠异常等高频故障,并提供工程配置与调试心法,实现从被动救火到主动预防的工程实 阅读详情

相关推荐

ComfyUI节点安装笔记

AI高速发展,版本更新相当快(11月25日才安装的版本v.0.3.4,27日版本就已经更新到v.0.3.5了),在遇到问题,找到问题原因所在的过程中,ComfyUI版本、python版本、节点对环境版本的依赖,本文就是在为了解决自己遇到问题过程中,如何快速安装ComfyUI及节点而作的笔记。

zslefour的专栏 1万+

2021-04-21

e:\123.arx 无法找到所需的动态链接库或其他文件。 AcRxDynamicLinker 加载“e:\123.arx”失败 D:\Program Files\Autodesk\AutoCAD 2014\acad.exe无法加载 123.arx 文件。 将arx路径增加到下面即可。

瞬Future 3483

CAD ARX常见错误解决方式

1、 error LNK2001: 无法解析的外部符号 "void * __cdecl acHeapAlloc(void *,unsigned __int64)"#if _MSC_VER >= 1920 // ObjectARXSDK 2021以上。在StdAfx.h中增加如下代码。//gz_xl 缺少库。

Coder----Allen----Coder 1904

如何解决动态链接导致的程序启动失败

工作中的程序,大部分为二进制发布但由此就很容易出现,由于某些库采用动态链接,发布后由于目标环境没有此库,导致程序启动失败默认情况下,gcc在-lxxx时,如果同时存在libxxx.so和libxxx.a,会优先链接动态库libxxx.so其中一种解决方案是,移除libxxx.so,但这显然不是一个很好的办法更好的办法是,明确告诉gcc,这个库链接其静态版本 在参考了这篇文章

shuiyu的blog 1598

cad加载arx

cad加载arx

FCN---训练cityspaces

未经允许,不要随意转载! 最近想试试用FCN训练自己的数据集,想想标注是一件很费劲的事,于是就想到了用其他库里的数据,这里选用了cityspaces,默认已经配置好FCN. 1、下载cityspaces https://www.cityscapes-dataset.com/ 需要注册一个账号 cityspaces包含2...

wangyu088的专栏 2031

CAD2010x64 无法找到所需的动态链接库或其他文件

软件架构师何志丹 a.arx调用了sn.dll, 一直可以正常加载。某种原因重装了acad2010,结果无法加载a.arx。 经试验: 1,不带路径,直接LoadLibraryA("a.arx") 失败。 2,带路径,LoadLibraryA("d://XX//XX//a.arx")成功。 a.arx和sn.dll在同一目录。所以会怀疑,autocad加载dll的顺序和win

闻缺陷则喜何志丹 2万+

【VisualStdio】手把手教你做一个上位机(1)控件设计布局

网上有很多形形色色的制作上位机教程,有些写的挺好的,但是过于单调。

m0_73409202的博客 5435

XL2477透传WiFi模组AT指令详解与设备联网实战指南

透传(Transparent Transmission)是物联网设备联网中最基础也最实用的通信模式之一,其核心原理是将串口数据不加修饰地转发到网络链路,实现设备与服务器之间的双向透明通信。AT指令作为串口设备最经典的控制协议,提供了一套简洁高效的配置入口,让开发者无需复杂SDK即可完成WiFi连接、TCP/UDP建链与透传模式切换。掌握透传技术,能够显著降低传统单片机设备的上云门槛,广泛应用于传感器数据采集、远程设备监控、工业物联网改造等场景。本文基于XL2477这款代表性的透传WiFi模组,系统讲解其AT

weixin_34280237的博客 541

支持找回微信删除好友!一款人人可用的全能微信数据分析工具

找回删除好友、查看删除记录、恢复聊天信息....

1725

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

zhulewen的博客 7883

reactor_logging_server会出现运行 error LNK2019

问题:在ACE_wrappers\examples\C++NPv2\里面Reactor_Log_Server有两个工程文件在vs2003中build C++NPv2_Reactor_Log_Server.vcproj,一切正常但在vs2005中build C++NPv2_Reac

645

ACE_TEST1.obj : error LNK2019: 无法解析的外部符号

ACE_TEST1.obj : error LNK2019: 无法解析的外部符号 "int __cdecl ace_main_i(int,char * * const)" (?ace_main_i@@YAHHQAPAD@Z) ,该符号在函数 "private: virtual int __thiscall ACE_Main::run_i(int,char * * const)" (?ru...

weixin_30361753的博客 263

RK3588芯片CAN总线调试秘籍:SocketCAN与错误帧攻略

RK3588芯片在嵌入式领域凭借8nm工艺和强大性能成为核心控制器。本文详细介绍了其CAN总线配置流程,包括硬件连接、内核驱动配置及SocketCAN命令操作,并深入解析了CAN通信中的错误帧机制及分析方法。通过智能工厂案例,展示了从问题定位到解决方案的全过程,强调了稳定通信对工业应用的重要性。文章为RK3588的CAN总线应用提供了实用技术参考,并对未来智能诊断技术在该领域的应用进行了展望。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 515

ADS基础教程22 - 有限元电磁仿真(FEM)

一、引言二、FEM操作过程1.新建Layout1.新建Layout2.EM设置3.设置Frequency plan4.设置Output plan5.设置Options6.设置网格频率7.仿真结果三、总结介绍了在ADS中如何进行FEM仿真过程。END!}}END!

XZ_ZC的博客 2580

几个调试错误

#1,报错1 LINK : fatal error LNK1104: cannot open file 'D:\…\MyProj.exe' 原因:可能是.exe已经在运行,所以程序无法打开同一个.exe可执行程序,当前这是我在VS中编译链接时遇到的问题; 解决办法:关掉已有的.exe,再运行程序。   #2,报错 c:\program files\boost\boost_1_47\boost\as

sophia_xw的博客 525

【从零开始学习 SystemVerilog】1.1、SystemVerilog 概述

【从零开始学习 SystemVerilog】1.1、SystemVerilog 概述

努力,加油每一天鸭~ 1037

ACE的日志输出之小见

ACE的日志输出之小见1、格式化输出ace里面只要是可以输出string的也就是c语言里面的那种char *字符串,就都可以像printf那样设置格式予以输出比如:       ACE_ERROR_RETURN( (LM_ERROR, ACE_TEXT("MAIN!%i%t%s%p/n"), 100, "asdf", ACE_TEXT("SERVICE CONFIGURE OPEN!"

大周辞寒的专栏 3662

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

WINCC7.3破解文件

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

无法找到所需的动态链接库或其他文件 AcRxDynamicLinker

无法找到所需的动态链接库或其他文件 AcRxDynamicLinker 出现该问题有可能是: 1、版本不符合导致的,使用相应的版本即可解决。 2、加载的文件还需要以来的其他库文件先加载,需要检查,然后修改调整顺序。 3、还有可能是分为32与64使用错误。...

csdn_wuwt的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ace error LNK2001错误

error LNK2001: 无法解析的外部符号 "public: virtual int __thiscallACE_Shared_Object::init(int,wchar_t * * const)"  主程序和配套的lib、dll一起使用的时候,必须编译环境设置一致。 如果ace编译时字符选择的是not set(味设置),则最好设置成:UNICODE字符集或

长歌楚天碧的专栏 648

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

程序员常见系统错误代码大全:1到15841

程序员常见系统错误代码大全:1到15841 提示:使用浏览器的Ctrl + F键盘组合来搜索错误代码。要么搜索错误消息本身,要么只搜索错误代码,例如“错误代码635”。 系统错误代码大全:1到15841 错误代码1:功能不正确。[ERROR_INVALID_FUNCTION(0x1)] 错误代码2:系统找不到指定的文件。[ERROR_FILE_NOT_FOUND(0...

南北极之间 13万+

ace日志详细解读

ACE_DEBUG介绍及日志输出 ACE_DEBUG  常规的一些输出消息    ACE_ERROR  会提供程序出错的一些低级消息 2个宏的用法上是一致的   ACE_DEBUG(错误级别,"格式串",变量1...变量N)      其中部分错误级别系统定义如下:    LM_SHUTDOWN = 01,系统死机级别     LM_TRACE = 02,跟踪级别     LM_

liyang_nash的专栏 1338
上一篇: 解除 Run-Time Check Failure #2
下一篇: 为什么不死锁呢?
Stone
博客等级 码龄21年 1715粉丝 158原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值