0
在以下示例中,一旦我們訪問bar
屬性,其值將自動更改。使用後更改了結構屬性
typedef struct {
DWORD bar;
} MYTYPE;
void Create(LPVOID *myTypePtr)
{
MYTYPE myType;
myType.bar = 50;
*myTypePtr = &myType;
}
int _tmain(int argc, _TCHAR* argv[])
{
DWORD foo;
MYTYPE *fooPtr;
Create((LPVOID)&foo);
fooPtr = (MYTYPE*)foo;
printf("%d\n", fooPtr->bar); // This prints 50 (ok).
printf("%d\n", fooPtr->bar); // This prints 2147344384 (garbage).
return 0;
}
是的,結構必須作爲void指針傳遞。我可能錯過了一些轉換細節,但我無法得到它。用Visual C++ 2003編譯。
任何想法?
真的,謝謝! – cdonts