以前用的是vc6.0编写现在用vs2005里面的函数虽然用法一样但参数都变了 怎么办啊哦 我不会看MSDN 怎么办啊
2个回答
展开全部
VC6.0中一般都是默认为Ansi库,所以很多函数都会宏定义为以A结尾的实函数。
比方说GetDlgItemText,在VC6.0中,默认会被指向为GetDlgItemTextA,参数定义为char *
但在VS2005或更高中,默认为Unicode库,函数宏定义会以W结尾的实函数。卖帆岁
对应的GetDlgItemText就会指向GetDlgItemTextW,而参数定义变成了wchar_t *
。。。。
所以如果VC6.0的工程在VS2005中打开,那么便会提示参数错误。
解决办法有两种:
方法1、将出错的函数后加A,如sendDlgItemMessage,改成sendDlgItemMessageA,即可。
方法2、在转换中睁后的工程设置中,通用设置->库字符集,改为使用Ansi字符集,即可。
有一点你要记住,无论是什么编译器,系统API永远都是一样的,除非操作系统版本发生变化,但即使变化,像是这些轿厅常用的函数,也都是完全一样的。所以函数的用法全部都是一样的,如果出错,那么就肯定是Ansi字符集和Unicode字符集的问题。
比方说GetDlgItemText,在VC6.0中,默认会被指向为GetDlgItemTextA,参数定义为char *
但在VS2005或更高中,默认为Unicode库,函数宏定义会以W结尾的实函数。卖帆岁
对应的GetDlgItemText就会指向GetDlgItemTextW,而参数定义变成了wchar_t *
。。。。
所以如果VC6.0的工程在VS2005中打开,那么便会提示参数错误。
解决办法有两种:
方法1、将出错的函数后加A,如sendDlgItemMessage,改成sendDlgItemMessageA,即可。
方法2、在转换中睁后的工程设置中,通用设置->库字符集,改为使用Ansi字符集,即可。
有一点你要记住,无论是什么编译器,系统API永远都是一样的,除非操作系统版本发生变化,但即使变化,像是这些轿厅常用的函数,也都是完全一样的。所以函数的用法全部都是一样的,如果出错,那么就肯定是Ansi字符集和Unicode字符集的问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询