1
我試圖寫一個dll,它將存儲在調用之間傳遞給它的一些值。如何在C++ dll中實例化一個類,以便它在內部函數調用之間保持內存?
目前,我有:
MyDll.h:
namespace MyDllNamespace
{
class MyClass
{
public:
static int getValue(int &a);
};
}
MyDll.cpp:
#include "ALERTDataAnalysisLibrary.h"
#include <stdexcept>
using namespace std;
namespace MyDllNamespace
{
int storedValue=0;
int MyClass::getValue(int &a)
{
a=a+storedValue;
}
}
MYDLL.DEF
LIBRARY MyDllLibrary
EXPORTS
getValue @1
的想法是,第一次被調用時,它返回t他傳遞了值,第二次調用它返回傳遞的值和先前傳遞的值的總和。 (這是有點削減,最終版本將不得不在陣列上,並與更多的價值,但一次一步!)
我想我想要做的就是停止getValue
是靜態的。這意味着在DLL中實例化一個類(可能在加載時),並在其中存儲數據。然後公開該類的一個函數。我不知道這是否是這樣做的,在經過多次搜索後我沒有發現任何類似的東西。
如果你想要做的是進程間通信,那不是做這件事的方法。查找「進程間通信」,瞭解如何實現這一目標。 – 2011-12-15 16:38:13
你的DLL在調用之間卸載並重新加載了嗎? – 2011-12-15 17:16:07