typedef struct _DEVICE_PARAM{
PWCHAR szKeyName;
ULONG uFlag;
}DEVICE_PARAM,*PDEVICE_PARAM;这个事结构体定义,我想定义一个这个类型的结构变量,然后对其中的成员赋值 DEVICE_PARAM pDeviceParam;
pDeviceParam.szKeyName=L"fd";
pDeviceParam.uFlag=0L;这样为什么不行啊?
是不是结构体要new啊?同时询问下,CString怎么转换到PWCHAR啊?CString x(_T("FUCK"));
怎么把x弄到我的结构的第一个成员中去呢?

解决方案 »

  1.   

    你的szKeyName是个指针,要想赋值字符串,需要用数组typedef struct _DEVICE_PARAM{
    WCHAR szKeyName[256];
    ULONG uFlag;
    }DEVICE_PARAM,*PDEVICE_PARAM; wcscpy(pDeviceParam.szKeyName, L"fd"); 
      

  2.   

    如果用了数组,CString也是一样可以wcscpy拷贝
      

  3.   


    不用数组,在使用使用前需要new赋值。
      

  4.   

    CString x(_T("FJSD"));
    DEVICE_PARAM DeviceParam; 
    DeviceParam.szKeyName=new WCHAR[20];
    DeviceParam.uFlag=0L; wcscpy(DeviceParam.szKeyName,x.GetBuffer());这样可以吗?
      

  5.   

    同时询问下,CString怎么转换到PWCHAR啊?CString x(_T("FUCK"));
    怎么把x弄到我的结构的第一个成员中去呢?
    ------------------------------------------
    CString支持LPCTSTR的显式转换。可以这样
    (LPTSTR)(LPCTSTR)x
      

  6.   

    可以这样
    typedef struct _DEVICE_PARAM{ 
    CString szKeyName; 
    ULONG uFlag; 
    }DEVICE_PARAM,*PDEVICE_PARAM;