我在 vs.net 2003 下面,编译使用 CAsyncSocket 的程序,unicode 版本,
编译链接都不报错,但是运行就会报错:
The procedure entry point FreeAddrInfoW could not be located in the dynamic link library WS2_32.dll我搜索了微软的网站,微软已确认是一个 bug 
http://support.microsoft.com/default.aspx?scid=kb;en-us;822334但是没有给出解决的办法,请问那位大侠有办法解决?

解决方案 »

  1.   

    偶是自己封装的,没用CAsyncSocket/CSocket.
      

  2.   

    微软已经建议了一个方法,就是调用这个函数的ANSI版本,将参数转换城ANSI字符,调用FreeAddrInfoA
      

  3.   

    "调用这个函数的ANSI版本"
    谈何容易呀!这意味着要使用ANSI版本的mfc,几乎所有的程序都要改成 ANSI 编译,问题多多呀!The problem that is described in the "Symptoms" section of this article occurs in any Unicode-enabled application that uses the FreeAddrInfo Windows Socket function on a computer that is running Windows XP. Because the ATL CSocketAddr class uses the FreeAddrInfo function, the same problem also occurs in ATL 7.1. Any class in ATL 7.1 and MFC 7.1 that uses the CSocketAddr class to enable IPv6 support reflects this behavior. For example, the CAsyncSocket class (MFC class) and the CSMTPConnection class (ATL class) use the CSocketAddr class.