的功能可以說我有以下功能在我的DLL:C/C++ - 指針傳遞在DLL
void TestFunction(int type, void* data)
現在,功能是從它加載該DLL的應用程序調用。應用程序初始化一個結構併發送指向該結構的指針:
SampleStruct strc;
TestFunction(DT_SS, &ss);
到目前爲止這麼好。現在困擾我的是如何用另一個結構替換內存中的strcc變量。如果我做我的DLL如下:
SampleStruct dllstrcc;
data = &dllstrcc;
數據現在將指向新dllstrcc結構然而,當它存在的功能和控制返回給應用程序STRC仍然會指向第一個結構。我怎麼能取代從DLL我的結構的應用程序的結構不分配每個字段:
data.vara = dllstrcc.vara;
data.varb = dllstrcc.varb;
data.varc = dllstrcc.varc;
首先讓我注意,它聽起來就像你在途中不確定的行爲(通過贈送指向本地數據),並指出,構建像'無效*'應避免在C++(沒有雙關語意)(因爲大部分時間都可能)。這就是說:如何引用/指針指針,這將讓你更換呼叫者網站上的指針? – Nobody 2012-08-10 15:37:24
@無人在現實中,它不是一個空白*,但可以說它歸結爲它。至於指針的指針,我不能控制應用程序和dll函數。然而,函數內的代碼在我的控制之下。 – oipoistar 2012-08-10 15:43:36
如果你被綁定到那個界面,你可以做的事情不多。 – Nobody 2012-08-10 15:46:38