怎样把char型数组转换为LPTSTR和LPCTSTR类型?
如:char temp[6];
如何把temp转换为LPTSTR和LPCTSTR类型?

解决方案 »

  1.   

    char temp[6] = "abcd";
    LPTSTR lptstr = (LPTSTR)temp;
    LPCTSTR lpctstr = (LPCTSTR)temp;
      

  2.   

    直接转化就行
    LPTSTR str = temp; 
    LPCTSTR nstr = temp;
      

  3.   

    在代码中未定义 UNICODE 的情况下
    LPTSTR    等价于  char *
    LPCSTR    等价于  const char *所以直接使用就是了。
      

  4.   

    不管定义未定义UNICODE 
    这样转换肯定是没错的
    LPTSTR  lptstr=_T(temp);
    LPCTSTR lpctstr=_T(temp);LPTSTR是TCHAR的指针 具体可以看CSDN
    LPCTSTR是CONST TCHAR的指针
    TCHAR 在定义了UNICODE的时候是wchar_t(unisigned short)
    没一定UNICODE的时候是char
      

  5.   

    我的程序在VC6中是直接使用的,未加转换,运行没有问题,
    但是转到VS2005中却提示错误“不能将参数 1 从“char [6]”转换为“LPTSTR””按照楼上各位的说法,“把char型数组转换为LPTSTR和LPCTSTR类型”的问题已经解决。但还有一个问题:能不能反过来转换,就是“把LPTSTR转换为char型数组”?
    或者能不能把“LPTSTR”转换为“long int”?
    因为我在程序中需要把获取数据的“LPTSTR”型变量转换为“long int”使用。
    而原本在VC6下,我直接使用“char[]”获取数据,然后直接用“atol”转换。
      

  6.   

    lwx300:
    error C2664: “lstrcpyW”: 不能将参数 1 从“char [6]”转换为“LPWSTR”
      

  7.   

    使用MultiByteToWideChar和WideCharToMultiByte可以让CHAR和WCHAR相互转换。