所以,我正在为一个程序编写一个插件,它要求将两个数据传递给它。它需要在调用之间存储数据。
所以,在psuedo-code中:
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本身,那么它可以工作!
我是想尝试一些无法做到的事情,还是有技巧可以提供帮助?
答案 0 :(得分:3)
你可以做到
class SharedData
{
//Store all data in this class
};
std::shared_ptr<ShareData> pSharedData = std::make_shared<SharedData>();
您可以在dll周围传递 pSharedData ,当没有人引用它时,它会自动被删除。