C++ 我可以在c+中维护内存吗+;函数调用之间的DLL?

C++ 我可以在c+中维护内存吗+;函数调用之间的DLL?,c++,dll,C++,Dll,所以,我正在为一个程序编写一个插件,它需要向它传递两组数据。它需要在两次调用之间存储这些数据 因此,在psuedo代码中: MainFunction() { GenerateData1() GenerateData2() } GenerateData1() { PassDataToDLL() //(DLL Stores data) } GenerateData2() { PassDataToDLL() //(DLL operates on both sets

所以,我正在为一个程序编写一个插件,它需要向它传递两组数据。它需要在两次调用之间存储这些数据

因此,在psuedo代码中:

MainFunction()
{
    GenerateData1()
    GenerateData2()
}

GenerateData1()
{
    PassDataToDLL() //(DLL Stores data)
}

GenerateData2()
{
    PassDataToDLL() //(DLL operates on both sets of data, returns results via pointer)
    OutputResults()
}
有趣的是,如果我修改了上面的代码,在将数据传递给dll之后,函数GenerateData1调用GenerateData2本身,那么它就可以工作了

我是在尝试做一些不能做的事情,还是有一种技术可以帮助我

你能行

class SharedData
{
      //Store all data in this class
};

std::shared_ptr<ShareData> pSharedData = std::make_shared<SharedData>();
类共享数据
{
//将所有数据存储在此类中
};
std::shared_ptr pSharedData=std::make_shared();

您可以在dll周围传递pSharedData,当没有人引用它时,它将自动删除。

您如何加载dll?您是链接到它还是通过LoadLibrary()链接到它?它是由delphi中的其他人加载的-不知道他们是如何加载的。不过,我会研究一下两者的区别。这听起来像是我在寻找的。。。我要去看戏,谢谢