experiment: Unicode ini wrapper UTF16_LE BOM Operation

Introduction

一个好用的UnicodeIni类, 防止在繁体WinOS上建立的Ini文件,回到简体WinOS上,读取Ini内容时乱码


Download

prjUnicodeIni_V2012_0403_2211.rar

srcUnicodeIni-2013-1010-1923.rar


how to use


// srcUnicodeIni.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "UnicodeIni/UnicodeIni.h"

#define G_INI_PATHNAME L"c:\\testUnicodeini.ini"
#define G_INI_SECTION_NAME L"SectionName1"
#define G_INI_KEY_NAME L"KeyName1"
#define G_INI_KEY_VALUE_DEFAULT L""
#define G_INI_KEY_VALUE_LEN_MAX 4096

int _tmain(int argc, _TCHAR* argv[])
{
	BOOL bRc = TRUE;
	DWORD dwRc = 0;
	CONST DWORD dwLenKeyValue = G_INI_KEY_VALUE_LEN_MAX;
	TCHAR cKeyValue[dwLenKeyValue];
	CUnicodeIni ini(G_INI_PATHNAME, TRUE);

	bRc = ini.WriteProfileString(G_INI_SECTION_NAME, G_INI_KEY_NAME, L"KeyValue1");
	if(!bRc)
	{
		_tprintf(L"ERROR ini.WriteProfileString %s = %d\n", L"::GetLastError()", ::GetLastError());
		goto _tmain_END;
	}

	dwRc = ini.GetProfileString(G_INI_SECTION_NAME, G_INI_KEY_NAME, G_INI_KEY_VALUE_DEFAULT, cKeyValue, dwLenKeyValue);
	if(dwRc >= dwLenKeyValue)
	{
		_tprintf(L"ERROR ini.GetProfileString, KeyValue need %d bytes\n", dwRc);
		goto _tmain_END;
	}

_tmain_END:
	getchar();
	return 0;
}

bugfix

  srcUnicodeIni-2013-1010-1923.rar
  在使用过程中发现,有可能头一次新建文件时,将文件设置成只读属性, 导致后续内容写不进去.
  还有可能一个文件第一次写不进入,必须要写第二次才能写进去.
  因为进行修改的版本不一样吧,将发现的2个问题修正了. 

  prjUnicodeIni_V2012_0403_2211.rar
  可用版本, 初版

  





你可能感兴趣的:(experiment: Unicode ini wrapper UTF16_LE BOM Operation)