怎么创建使用ADO访问数据库的动态链接库?

[复制链接]
查看11 | 回复1 | 2009-6-7 03:07:23 | 显示全部楼层 |阅读模式
我想用类的方法做成动态链接库应该怎么做?
假如我在ADO.h中定义了一个类CMyAdoconnect
classCMyAdoconnect
{
public:

CMyAdoconnect();
~CMyAdoconnect();
bool Open(LPCSTR lpAccess,long Options=adModeUnknown);//打开Access数据库
bool Open(LPCSTR pServer,LPCSTR pClass,LPCSTR pUid,LPCSTR pPassword,long Options=adModeUnknown);//打开SQL数据库

bool Execute(LPCTSTR lpstrExec);
_ConnectionPtr GetActiveConnection(){return m_connect;};
long BeginTransaction()
{return m_connect->BeginTrans();};
long CommitTransaction()
{return m_connect->CommitTrans();};
long RollbackTransaction()
{return m_connect->RollbackTrans();};
bool IsOpen();
void Close();
protected:
_ConnectionPtr m_connect;
};
在ADO.cpp中实现了这些函数,把这两个文件放在MFC中的源代码中使用正常,但我想做成动态链接库,这样别人就只能看到我的头文件,而看到不我怎么实现的。可当我新建一个Win32 Dynamic-Link Library,把上面的代码放进去的时候编译错误,大概意思是里面的成员都是未定义的,然后我在头文件中加入也还是不行,应该怎么样做成类似的动态链接库?就是在其中有CString之类的,以类的方式定义的,我想MFC当中的类也是这样的方式吧?
新建MFC DLL 有三个选项,我应该选哪个?还有我看了那里面都有自定义的App类,这个类有什么用?我这个类应该放在什么地方? 我只想知道在类中有MFC成员的时候做动态链接库的具体方法。 谢谢~~

回复

使用道具 举报

千问 | 2009-6-7 03:07:23 | 显示全部楼层
因为使用了MFC,所以你只能建立一个MFC动态库,而不是win32动态库。并且用AFX_EXT_CLASS 标记放在你的类名前面。相关资料见下文。如何在VC中导出类,这是一个常有人问起的问题,下面我以一个简单的例子来说明这个问题: 首先使用Wizard创建一个Win32 Dynamic-Link Library工程,然后定义一个简单的C++类CInDLL。由于该类会被工程之外的文件所引用,所以需要对这个类进行引出。因为只有引出后所生成的DLL中才带有供足够的信息以在连接和运行时被正确引入到进程空间中。有两种方法可以引出类,使用__declspec(dllexport)定义和使用定义文件。 下面先讲使用...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行