做了动态加载dll的工程,
其中dll中要被调用的4个函数之间由全局变量相互关联
想知道,怎么才能让4个函数被调用期间,dll的全局变量值一直保存?希望大侠们帮助解决一下啊

解决方案 »

  1.   

    那请问dll是可以一直不被卸载?还是在所有函数调用之后卸载?
      

  2.   

    加载后只要不调用FreeLibrary,FreeLibraryAndExitThread之类的就还在,直到进程结束
      

  3.   

    能帮忙做个示范吗?一直没有试成功
    调用的函数类似于下:
    long InitThreads(CString Drivename)
    {
    内部需要调用DLL.dll中的一个函数(影响到dll中的全局变量);
    调用线程SRProc;
    }
    在上一函数调用的线程
    UINT SRProc(LPVOID pParam)
    {
    内部需要调用DLL.dll的三个函数(全局变量需保持);}
      

  4.   

    请问您的问题解决了吗 ,我现在的问题是dll对话框dlg.DoModal()== IDOK条件中,对传递参数赋值,可是当点击dll对话框的“确定”按钮后,界面直接就报错关闭了。
      

  5.   

    现在是程序编译连接都没有问题,运行.exe文件调用dll时就会出现“0x……”指令引用的“0x0000002”内存,该内存不能为“written”。个人感觉是loadlibrary和freelibrary出现的问题,但是又不知道怎么解决。
    .exe函数类似于下:
    long InitThreads(CString Drivename)
    {
    内部需要调用DLL1.dll中的一个函数(影响到dll中的全局变量);
    调用线程SRProc;
    }
    在上一函数调用的线程
    UINT SRProc(LPVOID pParam)
    {
    内部需要分别调用DLL1.dll的三个函数(全局变量需保持);
    (三个函数是并列关系,相互间由dll的全局变量联系)
    }能帮忙在上面框架中加上dll的加载方式吗?什么时候在哪里加loadlibrary,哪里用freelibrary?
    谢谢啦