只有结构体指针 不知道结构体内容的情况上怎么得到值

只有结构体指针 不知道结构体内容的情况下如何得到值
目前有的东西  

  结构体指针 (结构体的内容不知道)
  char* 中存贮的结构体的名字
  char* 中存贮的结构体的属性名字
  属性的类型;

例如 struct temp{
  char* name;
  int num;};

  我只知道 指向temp的指针,char *s = "name" ; ,类型 char*;

  如何获取 name 的值?  
 

------解决方案--------------------
探讨
目前有的东西

      结构体指针 (结构体的内容不知道)
      char*  中存贮的结构体的名字
      char*  中存贮的结构体的属性名字
      属性的类型;

例如    struct temp{
        char* name;
        int num;};

  我只知道  指向temp的指针,char *s = "name" ; ,类型 char*;

    如何获取 name 的值?


------解决方案--------------------
使用void *和memcpy+table作的测试
仅供参考
C/C++ code

#include "stdio.h"   
#include "string.h"   
  
typedef struct  
{   
    int  nData;   
    char chData;   
}Tstruct1;   
  
typedef struct  
{   
    int   nData;   
    char  chData;   
    short wData;   
}Tstruct2;   
  
Tstruct1 tTestt1 = {100, '1'};   
Tstruct2 tTestt2 = {200, '2', 20};   
  
const char *Stable[]=   
{   
    (const char *)(&tTestt1),   
    (const char *)(&tTestt2),   
};   
  
  
void GetStructT(int type, void *pvOutBuf, int dwLen)   
{   
    char *lpstrBuf = NULL;   
  
    lpstrBuf = (char *)(Stable[type]);   
    memcpy(pvOutBuf, (char *)lpstrBuf, dwLen);   
}   
  
void SetStructT(int type, void *pvOutBuf, int dwLen)   
{   
    char *lpstrBuf = NULL;   
  
    lpstrBuf = (char *)(Stable[type]);   
    memcpy(lpstrBuf, pvOutBuf, dwLen);   
}   
  
  
int main(void)   
{   
    Tstruct1 at1 = {0};   
    Tstruct2 at2 = {0};   
  
    GetStructT(0, &at1, sizeof(Tstruct1));   
    printf("struct1: nData:%d, chData:%c\n", at1.nData, at1.chData);   
    GetStructT(1, &at2, sizeof(Tstruct2));   
    printf("struct2: nData:%d, chData:%c, wData:%d\n", at2.nData, at2.chData, at2.wData);   
    at2.nData  = 700;   
    at2.chData = '8';   
    at2.wData  = 66;   
    SetStructT(0, &at2, sizeof(at2));   
    printf("struct2: nData:%d, chData:%c, wData:%d\n", at2.nData, at2.chData, at2.wData);   
  
    return 0;   
} 

本文来自****博客,转载请标明出处:http://blog.****.net/jernymy/archive/2010/01/09/5165453.aspx

------解决方案--------------------
探讨
引用:
目前有的东西

       结构体指针 (结构体的内容不知道)
       char*  中存贮的结构体的名字
       char*  中存贮的结构体的属性名字
       属性的类型;

例如    struct temp{
         char* name;
         int num;};

  我只知道  指向temp的指针,char *s = "name" ; ,类型 char*;

    如何获取 name 的值?



是想做一个通用的模板  不管什么结构体只要指针传进来都能把数据取出来

有结构体的文档  可以在程序中读取



------解决方案--------------------
估计你想实现Java的那种reflection机制,通过类名获取类的方法名和返回值类型,类的属性名。
可以google一下 c++ reflection实现,有这种库和例子。
------解决方案--------------------
这个我看得自己设计一个结构,统一第一个是该结构体的大小,然后把结构体读入内存,里面的数据可以设计成一个个的struct,第一个成员是类型(用枚举),第二个成员是数据名,第三个就是类型的数据:
大意结构(不是代码):
C/C++ code
struct Test
{
  strcut
  {
    type t = integrate
    char *name = "usa";
    int usa = 300;
  };
  …………
};

------解决方案--------------------