区别
CreateFont、CreateFontIndirect 和 CreateFontIndirectEx 这三个函数都是用于创建字体的 Windows API 函数,但它们在使用方式和功能上还是有一些区别的。
- CreateFont 函数:
- 最基本的字体创建函数参数直接传递,如高度、宽度、字体名称等适用于简单的字体创建需求
使用场景:当你需要快速创建一个字体,并且知道所有必要的参数时。
- CreateFontIndirect 函数:
- 使用 LOGFONT 结构体来传递字体信息提供更多的字体属性控制适用于需要更详细控制字体属性的情况
使用场景:当你需要更精细地控制字体属性,或者需要保存/加载字体设置时
- CreateFontIndirectEx 函数:
- 使用 ENUMLOGFONTEXDV 结构体,包含 LOGFONT 和额外信息提供最全面的字体属性控制,包括字体设计向量适用于需要最高级别字体控制的情况
使用场景:当你需要使用高级字体特性,如 OpenType 特性或自定义设计向量时。
- 如果只需要基本的字体创建,使用 CreateFont 就足够了。
- 如果需要更多控制或者要保存/加载字体设置,使用 CreateFontIndirect 更合适。
- 如果需要使用最新的字体技术或最全面的控制,选择 CreateFontIndirectEx。
省流:
因为CreateFont是直接创建的,大多数情况下,参数都在调用的时候就写好参数了,所以在逆向的时候,找参数的时候,只需要往上翻一下,马上就看到了。而CreateFontIndirect和CreateFontIndirectEx都需要调用LOGFONT,所以特别难找,幸运的话,就在上面,不幸运的话,在某个犄角旮旯,得找半天,都不一定找得到!
因为在逆向里,CreateFontIndirect和CreateFontIndirectEx的处理都是一样的,这里就以createfontA和CreateFontIndirecA为例子,进行介绍。
1 2 3
温馨提示:本文最后更新于
2024-07-20 14:52:49
,本文具有时效性,若有错误或已失效,请在下方
留言或联系
站长。
暂无评论内容