您的位置:首页 > 运维架构

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

2013-11-08 22:33 821 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: