>>68
型の名前と変数名が一緒だからごっちゃになってないか?
  struct S1 *p;
  p = (struct S1 *)Open_Kansumei(...);