hoax3r
شنبه 27 تیر 1388, 17:56 عصر
سلام
من یه مشکل کوچیک دارم اگه بتونین کمکم کنید لطف بزرگی در حقم کردین
من یه کتاخانه دارم مینویسمی و تابعی درون این کتابخانه هست که یکی از پارامتراش یک اشارگر به ساختاره
ساختار رو هم خودم تعریف کردم. حالا میخام یک آدرس بخصوص که به طریقی پیداش میکنم
رو درون اشارگری که به صورت پارامتر گرفتم قرار بدم. در واقع پارامتر حکم ورودی و خروجی رو برام داره
این یه نمونه سورس مشابه کاری که میگم هست
#include <windows.h>
// inside a library
/////////////////////////////////////////
typedef struct tagTestStruct
{
DWORD dwVar1;
DWORD dwVar2;
DWORD dwVar3;
}TestStrcut, *PTestStrcut;
int func(PTestStrcut ps)
{
ps = (PTestStrcut) // any Address;
return TRUE;
}
/////////////////////////////////////////
int main(void)
{
PTestStrcut s = 0;
func(s);
s->dwVar1 = 10;
s->dwVar2 = 12;
s->dwVar3 = 14;
return 0;
}
حالا مشکل اینه که کامپیایلر (هم ماکروسافت و هم PellesC تست کردم) میاد این قسمت تابع رو
کلا حذف میکنه یا بقول خودشون مثلا بهینه میکنن البته در حالت Releaseولی من نمیخام این قسمت حذف بشه
ps = (PTestStrcut) // any Address;
چیکار کنم اینجوری نشه، آیا درست اینکارو انجام میدم؟
ممنون میشم راهنمایی کنید.
من یه مشکل کوچیک دارم اگه بتونین کمکم کنید لطف بزرگی در حقم کردین
من یه کتاخانه دارم مینویسمی و تابعی درون این کتابخانه هست که یکی از پارامتراش یک اشارگر به ساختاره
ساختار رو هم خودم تعریف کردم. حالا میخام یک آدرس بخصوص که به طریقی پیداش میکنم
رو درون اشارگری که به صورت پارامتر گرفتم قرار بدم. در واقع پارامتر حکم ورودی و خروجی رو برام داره
این یه نمونه سورس مشابه کاری که میگم هست
#include <windows.h>
// inside a library
/////////////////////////////////////////
typedef struct tagTestStruct
{
DWORD dwVar1;
DWORD dwVar2;
DWORD dwVar3;
}TestStrcut, *PTestStrcut;
int func(PTestStrcut ps)
{
ps = (PTestStrcut) // any Address;
return TRUE;
}
/////////////////////////////////////////
int main(void)
{
PTestStrcut s = 0;
func(s);
s->dwVar1 = 10;
s->dwVar2 = 12;
s->dwVar3 = 14;
return 0;
}
حالا مشکل اینه که کامپیایلر (هم ماکروسافت و هم PellesC تست کردم) میاد این قسمت تابع رو
کلا حذف میکنه یا بقول خودشون مثلا بهینه میکنن البته در حالت Releaseولی من نمیخام این قسمت حذف بشه
ps = (PTestStrcut) // any Address;
چیکار کنم اینجوری نشه، آیا درست اینکارو انجام میدم؟
ممنون میشم راهنمایی کنید.