我封装了一个串口类,因为writefile的第二个字符串类型为LPCVOID,而我要传入的是一个CString字符串,也就是
WriteCommBlock(LPCVOID lpByte,UINT nBytesToWrite)函数中我要把CString字符串传入lpByte这个参数中,请问需要怎么转换才能正确传入?
同样readfile第二个参数类型为LPVOID,为OUT状态,我要把一个什么类型的参数传入ReadCommBlock(LPVOID lpszBlock,int nMaxLength)的第一个参数中(这个参数对应readfile中的第二个参数),并在调用了readfile后,把这个参数变成CString传出??
在线等高手解决,越详细越好!!

解决方案 »

  1.   

    wirtefile的时候直接写CString的变量,长度写getlength*2+2()这个是Unicode版本要这样,ansii把2变1就中了.读取的时候你先用缓冲区,Unicode用WCHAR,ansii用char.读取了后直接赋值就中了.
    例如WCAHR  buf[100];ZeroMemory(buf,200); 读,CString s;
    s = buf;就中了
      

  2.   

    CString  szBufWriteFile(hFile,szBuf.GetBuffer(),szBuf.GetLength()....)
      

  3.   

    szBuf.GetLength() 最好再乘以 2 以免UNICODE时只存了1半.
    szBuf.GetLength()*sizeof(TCHAR)