TCHAR *nTargetAddress
m_SockAddrIn.sin_addr.S_un.S_addr=inet_addr(nTargetAddress);error C2664: 'inet_addr' : cannot convert parameter 1 from 'unsigned short *' to 'const char *'
不知道这个怎么转?API里面是不是不能用CHAR类型?
谢谢!

解决方案 »

  1.   

    'unsigned short *' to 'const char *nTargetAddress 你给这个指针赋值了吗?
      

  2.   

    TCHAR *nTargetAddress 
    m_SockAddrIn.sin_addr.S_un.S_addr=inet_addr(nTargetAddress); 
    //
    //TCHAR *nTargetAddress;
    m_SockAddrIn.sin_addr.S_un.S_addr=inet_ntoa(INADDR_ANY); 
    这样可以不
      

  3.   

    UNICODE的问题吧
    unsigned long inet_addr (
      const char FAR * cp  
    );
     
    Parameters
    cp 
    [in] A null-terminated character string representing a number expressed in the Internet standard ".'' (dotted) notation. 就直接用 char *nTargetAddress 或 char nTargetAddress[]
    还有自用之前要初始化或赋值 否则编译通过了但是运行要出错
      

  4.   

    用inet_ntoa也不行的,刚试过了
      

  5.   

    EVC只能使用Unicode编码的,也就是说TCHAR就是wchat_t类型。你改用char是可以的,不过字符串要用WideCharToMultiByte转换。
      

  6.   

    使用自动转换宏#include "atlbase.h"m_SockAddrIn.sin_addr.S_un.S_addr=inet_addr(T2CA(nTargetAddress));
      

  7.   

    转成CHAR类型就会报错
    error LNK2019: unresolved external symbol bind referenced in function不知道还有其它什么方法没?
      

  8.   

    没有链接Ws2_32.lib库文件啊
      

  9.   

    在你的cpp文件里加入
    #pragma comment(lib, "ws2.lib")