本文共 1756 字,大约阅读时间需要 5 分钟。
DWORD GetModuleFileName(HMODULE hModule, LPTSTR lpFileName, DWORD nSize);
该函数用于获取模块的全路径名。其参数说明如下:
HMODULE hModule
:表示模块的句柄。如果该参数为 NULL
,函数将返回当前进程的全路径名。LPTSTR lpFileName
:用于存储返回的模块路径名的内存块指针,属于输出参数。DWORD nSize
:指定 lpFileName
缓冲区的最大容量。lpFileName
,若缓冲区过小,则只返回缓冲区内的内容。0
,调用 GetLastError()
可获取错误代码。以下是一个获取当前模块路径的示例:
DWORD nSize = 1024;LPTSTR lpFileName = nullptr;DWORD ret = GetModuleFileName(nullptr, lpFileName, nSize);if (ret > 0){ cout << "当前模块路径:" << lpFileName << endl;}
DWORD GetPrivateProfileString(LPTSTR lpAppName, LPTSTR lpKeyName, LPTSTR lpDefault, LPTSTR lpReturnedString, DWORD nSize, LPTSTR lpFileName);
该函数用于从初始化文件中获取特定键名对应的字符串值。其参数说明如下:
LPTSTR lpAppName
:指定配置文件中的小节名。如果为 NULL
,则将所有小节名复制到缓冲区。LPTSTR lpKeyName
:指定小节中要获取的键名。如果为 NULL
,则将小节内所有键名复制到缓冲区。LPTSTR lpDefault
:默认字符串。如果键名不存在,则使用默认值。若 lpDefault
为 NULL
,则默认值为空字符串 ""
。LPTSTR lpReturnedString
:用于接收返回的字符串,属于输出参数。DWORD nSize
:指定 lpReturnedString
缓冲区的大小。LPTSTR lpFileName
:指定初始化文件路径。如果路径不完整,系统将从 Windows 目录开始搜索。NULL
字符。0
,调用 GetLastError()
可获取错误代码。以下是一个从初始化文件中获取特定键值的示例:
// 假设 Server.ini 文件格式如下:// [NETWORK]// ServerIP=100.100.100.53LPTSTR lpAppName = "NETWORK";LPTSTR lpKeyName = "ServerIP";LPTSTR lpDefault = "";LPTSTR lpReturnedString = nullptr;DWORD nSize = 1024;DWORD ret = GetPrivateProfileString(lpAppName, lpKeyName, lpDefault, lpReturnedString, nSize, "Server.ini");if (ret > 0){ cout << "获取到的 IP 地址:" << lpReturnedString << endl;}
nSize
足够大,避免字符串被截断。lpFileName
未提供完整路径,系统将从 Windows 目录开始搜索。lpDefault
中添加尾随空格,函数会自动添加 NULL
字符。通过合理使用上述两组 API 函数,可以高效地处理程序配置文件和模块路径相关的需求。
转载地址:http://fwffk.baihongyu.com/