vs2005与VC6.0有关问题“ 'TCHAR [255]' to 'PCHAR'”
vs2005与VC6.0问题“ 'TCHAR [255]' to 'PCHAR'”?
请问哈大家:
void CPmacProgrameDlg::OnBnClickedButtonStart()
{
// TODO: Add your control notification handler code here
TCHAR Data[255];
PmacGetResponseExA(0,Data,255,_T("#1j+"));
SetTimer(1,1000,NULL);
}
这个函数在VC6.0可以编译,而且正常运行。而在VS2005环境下却编译错误,错误如下:
error C2664: 'PmacGetResponseExA' : cannot convert parameter 2 from 'TCHAR [255]' to 'PCHAR'
PmacGetResponseExA()函数的申明如下:
PmacGetResponseExA(DWORD dwDevice,PCHAR s,UINT maxchar,PCHAR outstr);
请问这是怪什么呢?该怎么改呢?
------解决方案--------------------
VS2005环境下应该是宽字节的环境了吧,所以 TCHAR 为WCHAR了,把TCHAR Data[255];设置成char Data[255];吧
------解决方案--------------------
char Data[255];
PmacGetResponseExA(0,Data,255,"#1j+");
本来这个PmacGetResponseExA就是ansi版本,不能用TCHAR
找找有没TCHAR版的PmacGetResponseEx
请问哈大家:
void CPmacProgrameDlg::OnBnClickedButtonStart()
{
// TODO: Add your control notification handler code here
TCHAR Data[255];
PmacGetResponseExA(0,Data,255,_T("#1j+"));
SetTimer(1,1000,NULL);
}
这个函数在VC6.0可以编译,而且正常运行。而在VS2005环境下却编译错误,错误如下:
error C2664: 'PmacGetResponseExA' : cannot convert parameter 2 from 'TCHAR [255]' to 'PCHAR'
PmacGetResponseExA()函数的申明如下:
PmacGetResponseExA(DWORD dwDevice,PCHAR s,UINT maxchar,PCHAR outstr);
请问这是怪什么呢?该怎么改呢?
------解决方案--------------------
VS2005环境下应该是宽字节的环境了吧,所以 TCHAR 为WCHAR了,把TCHAR Data[255];设置成char Data[255];吧
------解决方案--------------------
char Data[255];
PmacGetResponseExA(0,Data,255,"#1j+");
本来这个PmacGetResponseExA就是ansi版本,不能用TCHAR
找找有没TCHAR版的PmacGetResponseEx