
MFC常用函数
缓冲区大小:确保 路径搜索:若 默认值处理:避免在 错误处理:检查返回值和错误代码,确保程序健壮性。
发布日期:2025-04-14 00:57:46
浏览次数:10
分类:精选文章
本文共 1756 字,大约阅读时间需要 5 分钟。
GetModuleFileName() 函数解析
1. 函数原型
DWORD GetModuleFileName(HMODULE hModule, LPTSTR lpFileName, DWORD nSize);
该函数用于获取模块的全路径名。其参数说明如下:
HMODULE hModule
:表示模块的句柄。如果该参数为NULL
,函数将返回当前进程的全路径名。LPTSTR lpFileName
:用于存储返回的模块路径名的内存块指针,属于输出参数。DWORD nSize
:指定lpFileName
缓冲区的最大容量。
2. 函数返回值
- 成功情况:函数将模块路径名返回至
lpFileName
,若缓冲区过小,则只返回缓冲区内的内容。 - 失败情况:返回
0
,调用GetLastError()
可获取错误代码。
3. 常用示例
以下是一个获取当前模块路径的示例:
DWORD nSize = 1024;LPTSTR lpFileName = nullptr;DWORD ret = GetModuleFileName(nullptr, lpFileName, nSize);if (ret > 0){ cout << "当前模块路径:" << lpFileName << endl;}
GetPrivateProfileString() 函数解析
1. 函数原型
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 目录开始搜索。
2. 函数返回值
- 成功情况:返回实际复制的字符数,不计末尾
NULL
字符。 - 失败情况:返回
0
,调用GetLastError()
可获取错误代码。
3. 常用示例
以下是一个从初始化文件中获取特定键值的示例:
// 假设 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 函数,可以高效地处理程序配置文件和模块路径相关的需求。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年05月21日 06时09分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Lombok的使用及其原理
2025-04-11
Lua,Lua API,配置文件
2025-04-11
luogu P1268 树的重量
2025-04-11
Luogu P2326 AKN's PPAP【按位贪心】
2025-04-11
LUOGU P4095 [HEOI2013]Eden 的新背包问题
2025-04-11
Luogu2973:[USACO10HOL]赶小猪
2025-04-11
luogu3172 [CQOI2015]选数 莫比乌斯反演+杜教筛
2025-04-11
lvm基本知识与常用命令
2025-04-11
lvs+keepalive主从和主主架构
2025-04-11
LVS-DR工作原理图文详解
2025-04-11
LVS-负载均衡
2025-04-11
LVS基本介绍
2025-04-11
LVS精益价值管理系统 DownLoad.aspx 任意文件读取漏洞复现
2025-04-11
LVS精益价值管理系统 LVS.Web.ashx SQL注入漏洞复现
2025-04-11
LVS负载均衡
2025-04-11
Lync Server单前端无边缘的外部访问思考
2025-04-11
Lync 小技巧-52-Lync 2013-不加域-客户端-2-导入-证书-信任链
2025-04-11
LZ4 1.10 压缩算法发布!具有多线程功能,压缩速度显著提高达 8 倍
2025-04-11
lz4_flex 项目教程
2025-04-11