变量在DLL调用之间保存内存中的值

时间:2016-03-27 21:39:10

标签: c++ dll

我有一个用C ++编写的DLL,在模拟过程中由Windows应用程序多次调用。当我执行模拟时,DLL在开始时被加载到内存中一次,并且在模拟结束之前不会被卸载。在模拟期间,DLL中的函数被多次调用。我想将DLL函数的输出重新用作每次连续调用的相同函数的输入,以便我可以计算运行总计。我的想法是我只需要在函数外部定义一个全局变量然后我可以引用它并在每次调用函数时添加它,但似乎全局变量没有保存更新的值。相反,每次调用DLL时它似乎都会重置为0。

这是我的DLL函数调用,除了全局变量之外它正常工作:

double Revenue = 0;   //global variable

extern "C" void __declspec(dllexport) CashFlow(int methodID, int* status, double* inargs, double* outargs)
{
    Bank MyBank1(methodID, inargs, outargs, Revenue);
    *status = MyBank1.UpdateAmounts();

    Revenue = MyBank1.getRevenue();
}

你能告诉我我可能做错了什么,或者我怎么能够定义一个在我的DLL中存储持久数据的全局变量?

谢谢!

0 个答案:

没有答案