C++ 我可以在c+中维护内存吗+;函数调用之间的DLL?
所以,我正在为一个程序编写一个插件,它需要向它传递两组数据。它需要在两次调用之间存储这些数据 因此,在psuedo代码中:C++ 我可以在c+中维护内存吗+;函数调用之间的DLL?,c++,dll,C++,Dll,所以,我正在为一个程序编写一个插件,它需要向它传递两组数据。它需要在两次调用之间存储这些数据 因此,在psuedo代码中: MainFunction() { GenerateData1() GenerateData2() } GenerateData1() { PassDataToDLL() //(DLL Stores data) } GenerateData2() { PassDataToDLL() //(DLL operates on both sets
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中的其他人加载的-不知道他们是如何加载的。不过,我会研究一下两者的区别。这听起来像是我在寻找的。。。我要去看戏,谢谢