WriteFile本来就是二进制,不需转换。

解决方案 »

  1.   

    TCHAR *p = L"你好吗?";
    将上述变量 p 通过WriteFile函数写入到文件,如何做?
      

  2.   

    使用WideCharToMultiByte的方法就不要说了,我已经知道了。
      

  3.   

    文本文件也有不同编码之分楼主希望生成的目标文件如果是ANSI编码的文本文件,需先将字符串转换成ANSI编码。
    wcstombs和WideCharToMultiByte的区别:
    WideCharToMultiByte多了CodePage参数,允许制定转换的页表,
    而wcstombs要转化中文,则需调用先setlocale(LC_CTYPE, ".936");指定页表
    其实他们没有太大差别
    如果是UNICODE编码的文本文件,在文件头部写入FFFE两个字节,然后将你的UNICODE编码字符串直接WriteFile写入文件即可,不需再转换
      

  4.   

    原来这样,那么说调用一个转换函数是必须的了?感觉用了unicode之后更加麻烦了,因为以前直接使用char*既可以用于显示,又可以直接将其当作二进制数据。用了unicode之后反而就不行了。
      

  5.   

    感觉用了UNICODE之后是不是多余了,因为总是需要用一个函数将字符串转来转去? 
      

  6.   

    你说的是二进制,和字符编码有什么关系?直接将内存指针作为参数调用WriteFile就可以了。注意数据长度要以字节计算而不是字符计算。
      

  7.   

    TCHAR *p = L"你好吗?"; 请问如何将变量“p”通过WriteFile函数写入到文件?求代码示例!