//Returns:
// int - 返回ID
//Remarks:
// ...
//author: luoweifu
//---------------------------------------------------------------
virtual int GetId() = 0;
//---------------------------------------------------------------
//function:
// SetId 设置ID
//Access:
// virtual public
//Parameter:
// [in] int id - 要设置的ID
//Returns:
// void -
//Remarks:
// ...
//author: luoweifu
//---------------------------------------------------------------
virtual void SetId(int id) = 0;
};
提供C接口
从上面的代码我们可以看到IPage可以由IDocument创建,ITextUnit可以由IPage创建。那问题来了,IDocument由谁来创建呢?这时我们可以提供两个全局的函数CreateDoc和DestroyDoc用来创建和销毁IDocument的对象指针,这两个函数是全局函数(C类型的函数),我们需要为其提供C的导出接口(这很重要)。其接口定义如下:
-
#pragma once
-
#include "IDocument.h"
#include "IPage.h"
-
#include "ITextUnit.h"
-
//===============================================================
-
//要导出静态库时,导出库的工程和使用库的工程都要加预编译宏EXPORT_STATIC
//要导出动态库时,导出库的工程要加预编译宏EXPORT_STATIC,使用库的工程不用