各位大虾,请问一个问题:目前我们公司遇到的情况是:在编译时会用到不同版本的LIB库(一定要这样,不能用最高版本的进行替代,因为不同企业使用的版本不一样)。不同版本的LIB库差异很小,只有几个函数和结构体有改变,但有时又用到了这样的函数。目前是通过#ifdefine的方式,来控制不同版本的函数。但是每次编译不同版本的时候都需要修改包含文件目录。我尝试使用如下宏来解决问题,但是出现意料之外的错误:
#define HEADFILE_(PATH,VER,HEAD) PATH VER HEAD
#define HEADFILE(PATH,VER,HEAD)  HEADFILE_(PATH,VER,HEAD)#define FILE_PATH           "D:\\WIN32\\
#define VERSION           "3.0\\"
#include HEADFILE(FILE_PATH,VERSION,"XX.h")编译后出现如下问题:
fatal error C1083: Cannot open include file: 'D:\\WIN32\\': No such file 也就是:HEADFILE_(PATH,VER,HEAD)宏只展开了PATH。
求教原因及解决方法。