Извините, но пытаться конвертировать целые числа в указатели - огромная ошибка. Чтобы использовать неопределенный указатель типа, просто используйте void указатель . Вместо:
struct SomeStruct {
int foo;
int bar;
int baz;
int bat;
}
SomeMethod(int a, int wParam, int lParam)
{
SomeStruct *s; //declare struct variable
s = lParam; //assign integer value as pointer to struct
printf("the value of s.foo is %d", s.foo); //print result
}
Вы можете использовать:
struct SomeStruct {
int foo;
int bar;
int baz;
int bat;
}
SomeMethod(int a, int wParam, void *lParam)
{
struct SomeStruct *s; //declare struct variable
s = (struct SomeStruct *)lParam; //assign integer value as pointer to struct
printf("the value of s.foo is %d", s->foo); //print result
}
Где также может работать конкретный указатель на структуру:
SomeMethod(int a, int wParam, struct SomeStruct *lParam)
{
printf("the value of s.foo is %d", lParam->foo); //print result
}
Попробуйте прочитать какой-нибудь совет о C, например C-FAQ .