我现在想写个DLL,这个DLL用来操作一个Access数据库。我想在DLL的入口函数中打开数据库,这样可以吗?另外我要在哪里关闭数据库呢?我不想导出一个open函数和一个close函数。
主要的想法是用户加载我的dll时能自动打开数据库,用户关闭程序时数据库又能自动关闭。这个功能该如何实现??不知道我表达清楚了没

解决方案 »

  1.   

    http://blog.csdn.net/jian704/article/details/1816732
      

  2.   

    dll的基本操作你会么会写类么?从基本的开始吧 
    楼主
      

  3.   

    DLL入口函数有初始化和删除的操作的就是第二个参数dwReason,你可以尝试下在那里打开和关闭数据库
      

  4.   

    按照你的要求看下面的代码(注释)://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.
    }
      

  5.   

    最好是提供一个类似Initialzie/Uninitialize的接口,在Init函数中Open数据库,在Uninit中Close数据库。不建议在DllMain函数中做太多事情。