码迷,mamicode.com
首页 > 其他好文 > 详细

xsocks 64位平台下编译问题小记

时间:2016-11-02 07:29:42      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:原因   强制转换   转换   for   rdp   span   丢失   this   cst   

1、src/common/public.h

     uint32_t lpParameter 改为 void* lpParameter;

2、SocksMgr.cpp

DWORD WINAPI CSocksMgr::ForwardProc(void* lpParameter) 
{

//    int s = int (lpParameter);
...
}

编译不过去。因为在 64位平台下,void*向 int转换会丢失精度。

DWORD WINAPI CSocksMgr::ForwardProc(void* lpParameter)
{

    intptr_t s = intptr_t(lpParameter);
        ...
}

作者在这里做强制转换的原因是:传递的参数  lpParameter,最原始由线程创建时当参数传入,受接口限制,只能传入指针类型。实际这个参数是一个socket句柄。是个 int。

还有个将 this指针强制转换为 uint32_t的。

bool CSocksMgr::Begin( LPCSTR ip, int port )
{
                ......
        proxy->lpParameter = this;
                ......
}

 

xsocks 64位平台下编译问题小记

标签:原因   强制转换   转换   for   rdp   span   丢失   this   cst   

原文地址:http://www.cnblogs.com/diylab/p/6021492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!