问一下WritePrivateProfileSection这个函数的有关问题
问一下WritePrivateProfileSection这个函数的问题
主要是结尾有乱码,我看过本论坛有关这个问题的帖子,是采用CString或char []作为该函数输入参数,但由于我VS2010中设置的字符集是unicode,所以提示形参必须是LPCWSTR

于是采用wstring作为输入参数,代码如下
然后ini文件最后就出现乱码了,请问该如何解决

------解决思路----------------------
解决方法:
由于VS2010默认的[字符集]为 “使用Unicode 字符集“ ,所以把他改为 “使用多字节字符集” 就可以了。
具体方法:项目属性—〉配置属性—〉常规—〉字符集—〉多字节字符集
------解决思路----------------------
不想改字符集的话,可以把char*转为LPCWSTR,MultiByteToWideChar或T2W都可,可以搜索一下用法
------解决思路----------------------
个人建议不要将STL和MFC的类混用,既然是Windows的编程,多用Windows的数据类型。
主要是结尾有乱码,我看过本论坛有关这个问题的帖子,是采用CString或char []作为该函数输入参数,但由于我VS2010中设置的字符集是unicode,所以提示形参必须是LPCWSTR
于是采用wstring作为输入参数,代码如下
#include <iostream>
#include<string>
#include<Windows.h>
using namespace std;
void main()
{
wstring section=L"first";
wstring f=L"a=1\r\nb=2\0";
wchar_t direc[256];
GetModuleFileName(NULL,direc,256);
wstring wstr=direc;
int l=wstr.find_last_of(L'\\',wstr.length());
wstring fullpath=wstr.substr(0,l)+L"\\1.ini";
WritePrivateProfileSection(section.c_str(),f.c_str(),fullpath.c_str());
system("pause");
}
然后ini文件最后就出现乱码了,请问该如何解决
------解决思路----------------------
解决方法:
由于VS2010默认的[字符集]为 “使用Unicode 字符集“ ,所以把他改为 “使用多字节字符集” 就可以了。
具体方法:项目属性—〉配置属性—〉常规—〉字符集—〉多字节字符集
------解决思路----------------------
不想改字符集的话,可以把char*转为LPCWSTR,MultiByteToWideChar或T2W都可,可以搜索一下用法
------解决思路----------------------
个人建议不要将STL和MFC的类混用,既然是Windows的编程,多用Windows的数据类型。