GetPrivateProfileString
函数作用:得到INI文件的配置信息
定义:
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, //Section Name
LPCTSTR lpKeyName, //Key Name
LPCTSTR lpDefault, //Return Default Value
LPTSTR lpReturnedString, //Point to Return String
DWORD nSize, //Return String size
LPCTSTR lpFileName //INI文件的地址,注意,这个地址要绝对地址.
);
要得到当前执行程序目录下的INI文件的地址,可调用:GetModuleFileName函数和GetCurrentDirectory
1、GetModuleFileName
函数作用:返回当前进行包含的指定模块所在文件的绝对路径
定义:
DWORD GetModuleFileName(
HMODULE hModule, //模块名,NULL表示返回当前进程所在的可执行文件的绝对路径
LPTSTR lpFilename, //返回的文件的绝对路径
DWORD nSize //返回的路径size
);
2、GetCurrentDirectory
函数作用:返回当前进程的当前目录
定义:
DWORD GetCurrentDirectory(
DWORD nBufferLength,
LPTSTR lpBuffer
);
可类似如下进行INI文件的读取:
const CString INI_INFO_SECTION_STUDY_INFO = _T("StudyInfo");
const CString INI_INFO_STUDY_KEY_STUDY_ID = _T("StudyID");
BOOL CINIClass::GetFileFullPath(CString szFileName)
{
char szModuleFileDirec[MAX_PATH] = "";
DWORD dwLength = GetModuleFileName(NULL,szModuleFileDirec,MAX_PATH);
if(dwLength == 0)
{
szModuleFileDirec[0] = '/0';
}
CString szTempUse = szModuleFileDirec;
szTempUse = szTempUse.Left(szTempUse.ReverseFind('//')+1);
szTempUse += szFileName;
m_szFileDirect = szTempUse;
CFileFind finder;
BOOL bWorking = finder.FindFile(m_szFileDirect);
if(!bWorking)
{
AfxMessageBox(_T("没有找到文件"));
return FALSE;
}
return TRUE;
}
{
char szTemp[MAX_PATH] = _T("");
GetPrivateProfileString(INI_INFO_SECTION_STUDY_INFO,
INI_INFO_STUDY_KEY_STUDY_ID,
_T("0"),
szTemp,
MAX_PATH,
m_szBasicInfoFile);
m_szPatID = szTemp;
}
[StudyInfo]
StudyID=