MinGw编译错误,求各位前辈指点一二

[复制链接]
查看11 | 回复10 | 2021-1-27 06:45:36 | 显示全部楼层 |阅读模式
NWideString&NWideString::Format(constwchar_t*format,...)
{
unsignedmax_len;
STRING_DATA&str_data=GetData();
va_listargList;
va_start(argList,format);
max_len=_wformat_len(format,argList);
if(str_data.times>1)
--str_data.times;
elseif(max_len
以上代码在vs2010上编译通过,但是用MinGW编译时在VSPRINTFW处出现以下错误:
error:cannotconvert'constwchar_t*'to'__gnuc_va_list{akachar*}'forargument'3'to'intvswprintf(wchar_t*,constwchar_t*,__gnuc_va_list)',该怎么解决??
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层
在网上看用STLport,下载了一个编译链接之后还是出现同样的错误
回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层
没有人知道吗。。。。


回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层
在线等啊等。。。。。
回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层
vswprintf这个原型是'intvswprintf(wchar_t*,constwchar_t*,__gnuc_va_list)'
最后一个是可变参数形式,感觉你的入参不太对啊
我估计VS和GCC这两个两个函数的原型是不一致的,如果想两套代码兼容使用预编译宏隔开。
回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层
引用4楼jerry_dqh的回复:vswprintf这个原型是'intvswprintf(wchar_t*,constwchar_t*,__gnuc_va_list)'
最后一个是可变参数形式,感觉你的入参不太对啊
我估计VS和GCC这两个两个函数的原型是不一致的,如果想两套代码兼容使用预编译宏隔开。

VS里面的原型是vswprintf(wchar_t*,constwchar_t*,va_list),va_list是个类型定义,其实就是char*
GCC里面的原型是vswprintf(wchar_t*,constwchar_t*,__gnuc_va_list),这个__gnuc_va_list是宏定义__builtin_va_list,不知道这又是个啥东西,哎,这方面一窍不通啊,该怎么改呢?
回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层



回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层
引用5楼maple_leaves_flying的回复:Quote: 引用4楼jerry_dqh的回复:
vswprintf这个原型是'intvswprintf(wchar_t*,constwchar_t*,__gnuc_va_list)'
最后一个是可变参数形式,感觉你的入参不太对啊
我估计VS和GCC这两个两个函数的原型是不一致的,如果想两套代码兼容使用预编译宏隔开。

VS里面的原型是vswprintf(wchar_t*,constwchar_t*,va_list),va_list是个类型定义,其实就是char*
GCC里面的原型是vswprintf(wchar_t*,constwchar_t*,__gnuc_va_list),这个__gnuc_va_list是宏定义__builtin_va_list,不知道这又是个啥东西,哎,这方面一窍不通啊,该怎么改呢?

你的入参有四个了
回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层
引用7楼jerry_dqh的回复:Quote: 引用5楼maple_leaves_flying的回复:
Quote: 引用4楼jerry_dqh的回复:
vswprintf这个原型是'intvswprintf(wchar_t*,constwchar_t*,__gnuc_va_list)'
最后一个是可变参数形式,感觉你的入参不太对啊
我估计VS和GCC这两个两个函数的原型是不一致的,如果想两套代码兼容使用预编译宏隔开。

VS里面的原型是vswprintf(wchar_t*,constwchar_t*,va_list),va_list是个类型定义,其实就是char*
GCC里面的原型是vswprintf(wchar_t*,constwchar_t*,__gnuc_va_list),这个__gnuc_va_list是宏定义__builtin_va_list,不知道这又是个啥东西,哎,这方面一窍不通啊,该怎么改呢?

你的入参有四个了

这个函数是可变参数的呀,四个应该是可以的,vs上都编译通过了。
回复

使用道具 举报

千问 | 2021-1-27 06:45:36 | 显示全部楼层



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行