在ACE库中添加LOWORD,LOBYTE和atoi64功能

已查看 1 次
跳至第一个未读帖子

louis.a...@gmail.com

未读,
2008年4月1日 22:35:072008/4/1
收件人 simple code team
添加代码位置:ace/OS_NT_stdlib.h(注意还有一个ace/os_nt_stdlib.h,windows下忽略大小写,但linux
下敏感大小写,但是这两个文件内容一样,跨平台切记注意大小写问题)

第一处:在
# define ACE_OS_NS_STDLIB_H
# include /**/ "ace/pre.h"
之间添加代码
//add by louis
#include "ace/Basic_Types.h"
///*add by louis*/

第二处:在
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
之前添加代码
//add by louis
#if !defined(ACE_WIN32)
#define LOWORD(l) ((unsigned short)((int)(l) & 0xffff))
#define LOBYTE(w) ((unsigned char)((int)(w) & 0xff))
#endif
///*add by louis*/

第三处:在
ACE_NAMESPACE_INLINE_FUNCTION
int atoi (const char *s);
之后添加代码
//add by louis
ACE_NAMESPACE_INLINE_FUNCTION
ACE_INT64 atoi64(const char *s);
///*add by louis*/

第四处:在
# if defined (ACE_HAS_WCHAR)
ACE_NAMESPACE_INLINE_FUNCTION
int atoi (const wchar_t *s);
# endif /* ACE_HAS_WCHAR */
里面int atoi (const wchar_t *s);之后添加代码
//add by louis
ACE_NAMESPACE_INLINE_FUNCTION
ACE_INT64 atoi64(const wchar_t *s);
///*add by louis*/

添加代码位置:ace/OS_NT_stdlib.inl
在代码块
#if defined (ACE_HAS_WCHAR)
ACE_INLINE int
ACE_OS::atoi (const wchar_t *s)
{
#if defined (ACE_WIN32)
ACE_OSCALL_RETURN (::_wtoi (s), int, -1);
#else /* ACE_WIN32 */
return ACE_OS::atoi (ACE_Wide_To_Ascii (s).char_rep ());
#endif /* ACE_WIN32 */
}
#endif /* ACE_HAS_WCHAR */
之后添加代码块
//add by louis
ACE_INLINE ACE_INT64
ACE_OS::atoi64 (const char *s)
{
#if defined (ACE_WIN32)
ACE_OSCALL_RETURN (::_atoi64 (s), ACE_INT64, -1);
#else
ACE_OSCALL_RETURN (atoll (s), ACE_INT64, -1);
#endif
}

#if defined (ACE_HAS_WCHAR)
ACE_INLINE ACE_INT64
ACE_OS::atoi64 (const wchar_t *s)
{
#if defined (ACE_WIN32)
ACE_OSCALL_RETURN (::_wtoi64 (s), ACE_INT64, -1);
#else /* ACE_WIN32 */
return ACE_OS::atoi64 (ACE_Wide_To_Ascii (s).char_rep ());
#endif /* ACE_WIN32 */
}
#endif /* ACE_HAS_WCHAR */
///*add by louis*/

说明:头文件里面是函数声明,inl是内联函数定义
回复全部
回复作者
转发
0 个新帖子