这个篇章结束,我们能自己写一个*.dle插件,这个插件的最后结果很简单,弹出一个对话框,如下图:
从图中的对话框内容可以看出,我们这个对话框是在DoExport()中被Max引擎给调用到了。文章中,我们会从一个空的工程开始一点一点加入代码,直到最后上面的结果,整个过程能让我们实践一个插件的开发过程,当然,只是万里长征的第一步。
整个工程最后的文件清单如下:
1,dllmain.h, dllmain.cpp
2,exporterdesc.h, exporterdesc.cpp
3,resource.h
4,OgreExporter.h, OgreExporter.cpp
5,exporter.def
4里面用到Ogre开头的名称,是因为我们后续可以导出成Ogre识别的XML格式,这个格式可以在Ogre DTD文档中看到,对大家都比较方便。最后我们也可以用Ogre知道我们导出的有没有问题。
现在就让我们开始:
准备、用VC新建win32 project,创建一个DLL, 记住勾选empty project,我们会在写插件的过程中不停的手工加入需要的文件。
1、在新项目中添加new item,类型选择.cpp,加入第一个文件,dllmain.h,内容如下:
#ifndef DLLMAIN_H
#define DLLMAIN_H
#include <windows.h>
#include "resource.h"
#include "max.h"
extern HINSTANCE hInstance;
extern TCHAR *GetString(int id);
#endif
这个头文件主要是包含了resource.h, windows.h, max.h 3个重要的头文件,准备做为一个基础给其他的C++文件包含用。
2、新加入dllmain.cpp,相关的代码如下,建议这个文件可以作为以后的模板文件,Copy-Paste代码的方式在这里完全是有意义的。
#include "dllmain.h"
#include "exporterdesc.h"
HINSTANCE hInstance;
static ExporterDesc gExporterDescInst;
BOOL WINAPI DllMain (HINSTANCE hInst, ULONG ulReason, LPVOID lpvReserved)
{
hInstance = hInst;
switch(ulReason