假设我的 DLL 中有以下函数:
void TestFunction(int type, void* data)
现在从加载该 DLL 的应用程序调用该函数。应用程序初始化一个结构并将指向该结构的指针发送到该函数:
SampleStruct strc;
TestFunction(DT_SS, &ss);
到现在为止还挺好。现在困扰我的是如何用另一个结构替换内存中的strcc变量。如果我在我的 dll 中执行以下操作:
SampleStruct dllstrcc;
data = &dllstrcc;
data现在将指向新的dllstrcc结构,但是当它存在函数并且控件返回到应用程序时, strc仍将指向第一个结构。如何在不分配每个字段的情况下用我的 dll 结构替换应用程序的结构:
data.vara = dllstrcc.vara;
data.varb = dllstrcc.varb;
data.varc = dllstrcc.varc;