今天把开发Max插件用的电脑重装了操作系统,把Max插件的工程打开,rebiuld all,晕!竟然出现几个链接错误,重装之前还好好的!仔细一看,都是:
error LNK2001: unresolved external symbol "public: virtual char * __thiscall ClassDesc::GetRsrcString(long)" (?GetRsrcString@ClassDesc@@UAEPADJ@Z),
想起来了,刚开始写的时候就遇到了这个问题,为了不再搞忘了,把它记录下来。
我使用的开发环境是VC++ 6.0和3DS Max 5.1。这个问题的出现是由于这个版本的MAX SDK(R4)开发时使用了最新的MS Platform SDK,有一个头文件的一处定义和VC6自带的不同!解决方法是装最新的MS Platform SDK,或者手动修改一下这个定义:
修改一下VC安装目录下的“include/basetsd.h”的123行和124行,把:
typedef long INT_PTR, *PINT_PTR;
typedef unsigned long UINT_PTR, *PUINT_PTR;
替换成:
typedef int INT_PTR, *PINT_PTR;
typedef unsigned int UINT_PTR, *PUINT_PTR;
参考资料:3DS Max 5.1 SDK文档