救助:关于软件国际化开发,int型改成_TINT后,函数参数引用错误

tcolacat 2008-03-25 02:02:10
函数定义:void AFXAPI DDX_Check(CDataExchange* pDX, int nIDC, int& value);
static _TINT flagAutoConnect;//原来static int flagAutoConnect;(编译通过)
DDX_Check(pDX, IDC_AUTOCONNECT, flagAutoConnect);
编译时遇到 error C2664: 'DDX_Check' : 第3个参数 从'unsigned int'向 'int &' 不能转换错误。
还有类似的错误
accept(IN SOCKET s,OUT struct sockaddr FAR * addr,IN OUT int FAR * addrlen);
 _TINT len = sizeof(addr);

sock = ::accept(s, (struct sockaddr*)&addr, &len);
error C2664: 'accept' :第3个参数 从'unsigned int *'向 'int *' 不能转换错误.
请问为什么会出现错误呢?int型的时候没有事,为什么会提示是unsigned int呢?不是int 么?
...全文
98 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
不明LZ在说什么
tcolacat 2008-03-31
  • 打赏
  • 举报
回复
好像用不上,
wchar_t szBuf[256], szIP[256];
HOSTENT *lpHost;
IN_ADDR inaddr;
IPAddr ipAddr;
gethostname(szBuf, (int)sizeof(szBuf));
lpHost = gethostbyname(szBuf);
memcpy(&inaddr, lpHost->h_addr_list[0], 4);
_tcscpy(szIP, (_TCHAR*)inet_ntoa(inaddr));

ipAddr = inet_addr (szIP);
已经是unicode编译了,gethostname出现第一个参数由unsigned short [256]' 到 'char *'不能转换
tcolacat 2008-03-30
  • 打赏
  • 举报
回复
有3一点,明明定义的是wchar_t型,为什么就变成unsigned了呢
  • 打赏
  • 举报
回复
用wcstombs之类的函数转换类型
tcolacat 2008-03-30
  • 打赏
  • 举报
回复
遇到个问题,gethostname函数,出现第一个参数由unsigned short [256]' 到 'char *'不能转换的错误,怎么解决?
还有好多函数出现由CString 到 const char* 不能转换的错误
lwykj 2008-03-26
  • 打赏
  • 举报
回复
你可以尝试 把代码写成中文的....
  • 打赏
  • 举报
回复
字符相关跟这个没啥关系吧
你程序使用unicode编码就行了。
tcolacat 2008-03-26
  • 打赏
  • 举报
回复
也就是说,只要把_TCHAR char
_TSCHAR signed char
_TUCHAR unsigned char
_TXCHAR char unsigned
相应的修改,还有操作函数是么?
菜牛 2008-03-25
  • 打赏
  • 举报
回复
国际化和int型没有关系吧。
  • 打赏
  • 举报
回复
_TINT是无符号的,你最好找一个有符号的
  • 打赏
  • 举报
回复
当然可以了,对cpu而言没区别
对编译期器言有区别
tcolacat 2008-03-25
  • 打赏
  • 举报
回复
不过我做test程序的时候,_TINT可以保存负数
  • 打赏
  • 举报
回复
多语言的时候就是改字符相关的
tcolacat 2008-03-25
  • 打赏
  • 举报
回复
那普通的int型应该改成什么呢?MSDN上对int型就说改成_TINT,没有说有符号还是无符号。我是想把_MBCS改称unicode,
相关推荐
发帖
图形处理/算法

1.9w+

社区成员

VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
帖子事件
创建了帖子
2008-03-25 02:02
社区公告
暂无公告