C++ 获取字体目录的独立于平台的方法?
我有没有办法找到字体在Windows、OSX或Linux上的存储位置?如果没有,我是否有办法保证所有3种平台的特定路径(如X:/Windows/Fonts/)?我将使用什么样的ifdef来实现这些功能?假设目标操作系统有一个字体文件夹。例如,Linux安装只作为控制台而根本没有字体目录是非常可行的C++ 获取字体目录的独立于平台的方法?,c++,fonts,C++,Fonts,我有没有办法找到字体在Windows、OSX或Linux上的存储位置?如果没有,我是否有办法保证所有3种平台的特定路径(如X:/Windows/Fonts/)?我将使用什么样的ifdef来实现这些功能?假设目标操作系统有一个字体文件夹。例如,Linux安装只作为控制台而根本没有字体目录是非常可行的 无论如何,我最好的猜测是没有平台独立的方式。您可以编写自己的独立于平台的函数,但在其中必须检查当前操作系统(通过一些IFDEF,我不能说是什么),然后调用正确的函数。不过,我还是不确定你是否能在Lin
无论如何,我最好的猜测是没有平台独立的方式。您可以编写自己的独立于平台的函数,但在其中必须检查当前操作系统(通过一些IFDEF,我不能说是什么),然后调用正确的函数。不过,我还是不确定你是否能在Linux下获得它。这将是一个“简单”的问题,根据你需要这些信息的原因,可能会有一个顶级的解决方案 我不得不为那些含糊不清的Linux答案道歉,因为Linux发行版的字体管理并不一致,而且可能非常可配置,可能会受到桌面环境的影响,可能会被远程服务,等等 检查环境 您可以通过使用为特定环境定义的宏来检查各种平台
- Windows-
#如果已定义(_WIN32)
是为32位和64位窗口定义的\u WIN32
- Mac OSX-
#如果已定义(_APPLE)和已定义(_MACH)
是为所有苹果电脑定义的,如果系统支持MACH系统调用,则定义\u苹果
,即la Mac OSX\u MACH
- Linux(通用)#如果已定义(Linux)|已定义(Linux)
- 窗户
- 在高于3.1的Windows上,字体目录位于
中李>%WINDIR%\font
- 在高于3.1的Windows上,字体目录位于
- MacOSX
- Mac OSX有多个字体目录
-系统所需的字体。不要碰这些/System/Library/font
-可供所有用户使用的其他字体。如果字体将被其他应用程序使用,这通常是字体的用途/Library/font
-特定于每个用户的字体~/Library/font
-为网络上的用户共享的字体/Network/Library/font
- Mac OSX有多个字体目录
- Linux
- 如上所述,Linux发行版可能根本没有指定的字体目录。我记得不久前曾处理过这个问题,因为Linux发行版不使用任何特定的字体管理
- 可能会有一个远程服务
- Linux发行版中字体最常见的位置是
,/usr/share/font
,以及用户特定的/usr/local/share/font
~/.font
- 某些系统可能在文件
或/etc/fonts/fonts.conf
中配置了字体目录/etc/fonts/local.conf
- (也适用于Red Hat Enterprise Linux 5)
%WINDIR%\font
目录。注册表保存了安装位置。@御宅族这是一个很好的信息-你能提供我可以放在我的帖子中的任何链接或信息吗?