error: ‘_swprintf’ was not declared in this scope 解决办法

port visual studio c++ to linux gcc version. make 之后 遇到


LBFGSCPP.cpp: In member function ‘std::wstring ExceptionWithIflag::toString()’:
LBFGSCPP.cpp:42: error: ‘_swprintf’ was not declared in this scope
make: *** [LBFGSCPP.o] Error 1


_swprintf 在linux下不兼容,所以改用 swprintf(), 多了一个argument . maximum count

http://msdn.microsoft.com/en-us/library/ybk95axf(v=vs.80).aspx


//#include "stdafx.h"

#include <stdio.h>
#include "./LBFGSCPP.h"
#include <math.h>
#include <sstream>
#include <iostream>
#include <string>


using namespace std;


ExceptionWithIflag::ExceptionWithIflag()
{
content = L"";
iflag = -1;
}
ExceptionWithIflag::ExceptionWithIflag( int i, wstring s )
{
content = s;
iflag = i; 
}
ExceptionWithIflag::~ExceptionWithIflag()throw()
{
}
wstring ExceptionWithIflag::toString()
{


wchar_t  szCause[255];
wstring strFormatted;


//    _tcscpy(szCause, what());
//GetErrorMessage(szCause, 255);


// In real situations, it is
// appropriate to read this from
// a wstring resource so it would be easy to
// localize.
//strFormatted += szCause;
strFormatted += content;


wchar_t buff[256];

_swprintf(buff, L"(iflag == %d)", iflag);

//change to swprintf(buff, 256,L"(iflag == %d)", iflag) in linux

wstring str(buff);


strFormatted += str;


return strFormatted;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值