关于DLL的入口和出口函数??

WSNEUQ 2013-01-22 03:44:45
我现在想写个DLL,这个DLL用来操作一个Access数据库。我想在DLL的入口函数中打开数据库,这样可以吗?另外我要在哪里关闭数据库呢?我不想导出一个open函数和一个close函数。
主要的想法是用户加载我的dll时能自动打开数据库,用户关闭程序时数据库又能自动关闭。这个功能该如何实现??不知道我表达清楚了没。。。
...全文
210 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2013-02-07
  • 打赏
  • 举报
回复
最好是提供一个类似Initialzie/Uninitialize的接口,在Init函数中Open数据库,在Uninit中Close数据库。不建议在DllMain函数中做太多事情。
请叫我涛哥0-0 2013-02-07
  • 打赏
  • 举报
回复
按照你的要求看下面的代码(注释):

//Dll的入口函数
BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,  // handle to DLL module
    DWORD fdwReason,     // reason for calling function
    LPVOID lpReserved )  // reserved
{
    // Perform actions based on the reason for calling.
    switch( fdwReason ) 
    { 
        case DLL_PROCESS_ATTACH:
         // Initialize once for each new process.
         // Return FALSE to fail DLL load.
         //①Open数据库
            break;

        case DLL_THREAD_ATTACH:
         // Do thread-specific initialization.
            break;

        case DLL_THREAD_DETACH:
         // Do thread-specific cleanup.
            break;

        case DLL_PROCESS_DETACH:
         // Perform any necessary cleanup.
         //②Close数据库
            break;
    }
    return TRUE;  // Successful DLL_PROCESS_ATTACH.
}
fishion 2013-01-30
  • 打赏
  • 举报
回复
DLL入口函数有初始化和删除的操作的就是第二个参数dwReason,你可以尝试下在那里打开和关闭数据库
jimette 2013-01-22
  • 打赏
  • 举报
回复
dll的基本操作你会么 会写类么? 从基本的开始吧 楼主
jimette 2013-01-22
  • 打赏
  • 举报
回复
http://blog.csdn.net/jian704/article/details/1816732

15,471

社区成员

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

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