我的应用程序调用 dll 并使用 dll 结构更新应用程序结构。但是应用程序结构中有一个额外的字段(bool enable)。
当我尝试分配我的应用程序 struture.enable 时,我会用垃圾值更新相同的内容。
如何检查 dll 中定义的结构和应用程序中定义的结构的大小是否具有相同的语法。
我无法更改 dll 中的任何内容。
如果 dll 结构中不存在该字段,我希望应用程序结构始终初始化为零。
我提供下面的代码,
///// ** structure definition in the dll called application ** //////
typedef struct
{
DWORD Size;
bool mode;
BYTE check;
DWORD time_1;
DWORD time_2;
} STR_INTERFACE;
///// ** structure definition in the application ** //////
typedef struct
{
DWORD Size;
bool mode;
BYTE check;
DWORD time_1;
DWORD time_2;
bool enable;
} STR_INTERFACE;
///
///mypassedstr will conatin the updated structure pointer with the
///structure members updated by the dll
int MY_Appli_function::Interface_1_func ( LPCTSTR name_1, LPVOID mypassedstr )
{
STR_INTERFACE mycodestr;
STR_INTERFACE* mynewstr = (STR_INTERFACE*)mypassedstr;
mycodestr.Size = mynewstr->.Size ;
mycodestr.mode = mynewstr->.mode ;
mycodestr.check = mynewstr->.check ;
mycodestr.time_1 = mynewstr->.time_1 ;
mycodestr.time_2 = mynewstr->.time_2 ;
mycodestr.enable = mynewstr->.enable ;
}