dll导出类编译失败

johnhall 2009-03-27 11:46:06
#include <cstdio>
#define DLL_DECL __delspec(dllexport)
class DLL_DECL IIO
{
public:
IIO(void);
virtual ~IIO(void);

virtual int Read(void* pBuf, int nSize,bool fBlock = true) = 0;
virtual int Write(const void* pBuf, int nSize,bool fBlock = true) = 0;
virtual void Flush(void);
virtual int Seek(long lOffset,int nOrigin) = 0;
virtual int Size(void) = 0;
virtual void Close(void) = 0;
virtual bool IsValid(void) const = 0;
virtual int GetCurPos(void) const = 0;

static bool IsJpegFile(IIO* pIO);
static bool IsJpegFile(FILE* fp);
static bool IsJpegFile(const wchar_t* wszFileName);
};

结果编译的时候出现错误:
error C2470: “IIO”: 看起来像函数定义,但没有参数列表;跳过明显的函数体

怎么弄
...全文
182 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
皮蛋C 2009-03-27
  • 打赏
  • 举报
回复
#define DLL_DECL __declspec(dllexport) 少了个'c'
downmooner 2009-03-27
  • 打赏
  • 举报
回复

#ifdef BFENCRYPT_DLL
#define BFENCRYPT_DLL _declspec(dllexport)
#else
#define BFENCRYPT_DLL _declspec(dllimport)
#endif

class BFENCRYPT_DLL CBlowFish
{
private:

public:
CBlowFish () ;
~CBlowFish () ;

} ;

我的无错啊.
去掉void呢?
头文件调用std?
sherrik 2009-03-27
  • 打赏
  • 举报
回复
mengde007 2009-03-27
  • 打赏
  • 举报
回复
干嘛导出类呢?想不通……
taodm 2009-03-27
  • 打赏
  • 举报
回复
珍惜生命,远离扩展dll格式。
只使用纯C接口的标准dll。
梅文海 2009-03-27
  • 打赏
  • 举报
回复
到处 c++ 的类常常被用到,不过可以采用另一种更好的方式,即导出类的实例,这种方式有点和com类似,如果定义的好,甚至可以在 Delphi 或其他语言中使用该对象。值得一提的是可以导出一些函数,并且通过生成句柄的方式由其他函数进行调用,例如:

HANDLE h=CreateHandle();
int i=GetAge(h);

这样的方式就完全可以在其他的语言中使用了
zeroreal 2009-03-27
  • 打赏
  • 举报
回复
最好不要在dll中导出类,只导出类的方法就好了
downmooner 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guangrui 的回复:]
#define DLL_DECL __declspec(dllexport)  少了个'c'
[/Quote]

仔细啊

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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