如何通过pos访问未知结构的元素?

时间:2015-11-26 11:14:20

标签: c

在主程序中,我有许多不同的结构和相关类型,我调用一个外部函数,我将其保存在一个单独的dll中:

typedef struct{int a; int b; int c; int d;} t1;
typedef struct{int x; int y; double z; double w;} t2;
// ...
int ret;
char* s="blah";
t1* parms1;
t2* parms2;
ret=MyFunc(s, t1);
//...
ret=MyFunc(s, t2);

在dll中,以上类型既未定义也未知,我有以下功能:

__declspec(dllexport) int MyFunc(char* pstmt, void* pRS){
//--
}

我的问题是,有没有办法访问(即读取/设置)dll中传递的struct元素?比如,基于位置的访问或类似的东西?例如,我希望能够写出如下内容:

pRS->*<either a or x>*=*<something>*

1 个答案:

答案 0 :(得分:0)

你需要cast(void *)到任何想要的结构,如你的情况:

((t1*)pRS)->a=0;

((t2*)pRS)->x=0;