PDA

View Full Version : سوال: مشکل در اشاره گر به تابع



zrahimic
پنج شنبه 29 بهمن 1388, 10:10 صبح
با سلام.

من در یک کلاس native یک اشاره گر به تابع تعریف کردم. به صورت زیر:



class myNativeClass
{
public:
typedef void (myFunctionPointer)(int nData);
void SetFunc(myFunctionPointer *pfnMyFunc);

private:
static myFunctionPointer *spfnMyFunc;
};

void (*myNativeClass::spfnMyFunc)(int nData) = NULL;

void myNativeClass::SetFunc(myFunctionPointer *pfnMyFunc)
{
spfnMyFunc = pfnMyFunc;
}


حالا میخوام از طریق تابع SetFunc در یک کلاس Managed به این اشاره گر مقدار بدم. به صورت زیر:



public ref class myManagedClass
{
private:
myNativeClass * m_Impl;
void myNewFunction(int nData);
};

myManagedClass ::myManagedClass ():
{
m_Impl -> SetFunc(myNewFunction);
}
void myManagedClass ::myNewFunction(int nData)
{
// other code
}



ولی موقع کامپایل خطا میده.
اگر بیام typedef رو از کلاس اول بیارم بیرون و عمومی کنم و تابع myNewFunction رو هم از کلاس دوم بیارم بیرون و عمومی کنم، دیگه خطا نمیده و منظور من رو تامین نمیکنه. چون من میخوام تابع مربوط به اشیایی باشه که از کلاس دوم ساخته میشه نه عمومی باشه.

لطفا راهنمایی کنید.