动态连接库一般是在运行时连接并使用,一般把动态连接库添加到工程跟目录下或者在系统文件夹下,但是有时为了隐含动态连接库文件,可以在工程中添加的方法。
1,首先在设计时把动态连接库添加到资源。如在InitMotorDB工程中添加libmySQL.dll文件作为资源
在使用动态连接库时,首先从资源中读取数据,然后写DLL文件(即从资源文件还原成动态连接库文件),然后装入,下来的流程就是跟显式连接动态连接库一样的操作了。
如下例子:
//头文件
class CMysql : public CObject
{
//。。。。
//定义函数指针类型
typedef MYSQL* (WINAPI *MYSQL_INIT)(MYSQL*);
typedef MYSQL* (WINAPI *MYSQL_REAL_CONNECT)(MYSQL*, LPCSTR, LPCSTR, LPCSTR, LPCSTR, UINT,LPCSTR,UINT);
typedef int (WINAPI *MYSQL_QUERY)(MYSQL*,LPCSTR);
typedef MYSQL_RES* (WINAPI *MYSQL_USE_RESULT)(MYSQL*);
typedef MYSQL_ROW (WINAPI *MYSQL_FETCH_ROW)(MYSQL_RES*);
typedef void (WINAPI *MYSQL_FREE_RESULT)(MYSQL_RES*);
typedef int (WINAPI *MYSQL_SELECT_DB)(MYSQL*,LPCSTR);
typedef MYSQL_RES* (WINAPI *MYSQL
在编译时加入DLL而无需再运行时连接的方法
最新推荐文章于 2021-08-17 22:15:10 发布
本文介绍了一种在编译时将DLL集成到项目中的方法,从而避免运行时的显式连接。通过将动态链接库作为资源添加到工程,然后在运行时从资源中读取并写入DLL文件,再进行装入和使用,可以实现隐含连接libmySQL.dll。详细步骤包括添加资源、从资源中读取数据、创建DLL文件、装入DLL以及获取和使用导出函数。
摘要由CSDN通过智能技术生成