我正在研究的这个程序有一个3D(硬件/非硬件)光标选项,我正在尝试为其配置选项。现在,它使用预处理器#define宏进行设置,该宏设置CursorType,CursorName和CursorDisplay的类型。目前,我可以打开或关闭3D光标的唯一方法是注释或取消注释#define USE_3D_CURSOR行(非常糟糕)。
#define USE_3D_CURSOR
#if defined (USE_3D_CURSOR)
#include <osgDB/ReadFile>
#define CursorType osg::Image *
#define CursorName const stringobj&
#define CursorDisplay osg::Texture *
#elif defined (_MSC_VER)
#include <windows.h>
#include <osgViewer/api/Win32/GraphicsWindowWin32>
#define SLASH "\\"
#define CursorType HCURSOR
#define CursorName LPTSTR
#define CursorDisplay HMODULE
#elif defined(__linux__)
//...
正如我之前所说的,我想将其更改为可在运行时之前设置的配置文件选项。但是,我不确定这样做的最佳方法是什么。我应该使用模板化函数吗?
答案 0 :(得分:3)