warning C4275: non dll-interface class 'CFaceDetectorBase' used as base for dll-interface class

Sander 2006-12-15 08:50:41
请问这个dll是什么问题
...全文
1388 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
blastzgd 2006-12-21
  • 打赏
  • 举报
回复
把父类也导出来.
Sander 2006-12-21
  • 打赏
  • 举报
回复
还请高手呀指点呀,我是vc6.0下的
DentistryDoctor 2006-12-15
  • 打赏
  • 举报
回复
导出的类是从未导出的类派生的。



错误消息
非 DLL 接口类键“identifier”作为 DLL 接口类键“identifier”的基使用


导出的类是从未导出的类派生的。

要在使用 __declspec(dllexport) 导出类时使数据损坏的可能性降到最小,请确保:

所有静态数据都是通过从 DLL 导出的函数进行访问的。

类的任何内联方法都不能修改静态数据。

类的所有内联方法都不使用 CRT 函数或其他使用静态数据的库函数。

内联类函数都不使用 CRT 函数或其他库函数(例如,可从中访问静态数据的库函数)。

如果 EXE 和 DLL 中的实例化具有静态数据差异时,类的任何方法(无论是否为内联)都不能使用类型。

通过定义一个 DLL 可以避免导出类,该 DLL 定义一个具有虚函数的类,您可以调用这些函数对该类型的对象进行实例化和删除。然后在该类型上调用虚函数即可。

有关导出模板的更多信息,请参见 http://support.microsoft.com/default.aspx?scid=KB;EN-US;168958。

如果要从标准 C++ 库中的类型派生,并且要编译调试版本 (/MTd),而且编译器错误信息引用 _Container_base,则在 Microsoft Visual C++ 2005 中可以忽略 C4275。

复制代码
// C4275.cpp
// compile with: /EHsc /MTd /W2
#include <vector>
using namespace std;
class Node;
class __declspec(dllimport) VecWrapper : vector<Node *> {}; // C4275

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧