写了一个ABC.dll
 
可是发现,EXE工程代码中,无论在函数的任何位置,还是我怎么去调用该DLL,该DLL的实例在EXE中只存在一份.比如说, DLL工程中有个函数 TestDll返回一个整数, 该整数是全局的,每次调用都加一.
而EXE工程无论代码怎么写,调用该TestDll,里面的全局总数,都是累计进去的. 并不是新的实例;
哪位大虾能解决下,或者说明一下.
谢谢.

解决方案 »

  1.   

    在dll里写一个object,所有的操作都在object里进行,调用的时候都先create,然后free,不知道这样行不行
      

  2.   

    首先感谢楼上,但是
    这是在DLL工程代码中里面的实例的控制,这当时是可以的,我所需要的是在外部调用该DLL生成两个DLL实例,不知可否
      

  3.   

    把DLL用程序复制一份出来加载,结束的时候删掉?
      

  4.   

    DLL代码是只有一份实例,数据是每进程独享的,当DLL的数据改变时,就为使用它的当前进程产生一个独享的副本,所谓copy on write。要多进程共享数据需要DLL中建立shared Data Section。不知道你要什么“新的实例”?
      

  5.   

    呵呵,你可以在DLL中使用队列,每次加载时取对应队列的变量就好