newtype
::: newtype의 지식창고 :::
newtype
전체 방문자
오늘
어제
  • 분류 전체보기 (392)
    • Dev (214)
      • C, C++ (43)
      • Go (5)
      • Web (49)
      • DBMS (21)
      • DevOps (8)
      • Java (2)
      • Windows, Win32 (4)
      • Visual Basic (5)
      • C# (2)
      • Mobile (25)
      • SQL CE (7)
      • Google Map (6)
      • Python (2)
      • cygwin (2)
      • 기타 (32)
      • Ruby (1)
    • 명언 (10)
    • 모임 (18)
      • 붕주회 (3)
      • 신흥컴정 (14)
      • 웹20기 (1)
    • 사진 (8)
    • 불펌 (29)
    • 막글 (98)
    • 게임 (6)
    • 여행 (8)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

  • whoami
05-09 00:03
hELLO · Designed By 정상우.
newtype

::: newtype의 지식창고 :::

Dev/C, C++

함수 포인터 관련..

2006. 9. 19. 18:26
http://www.newty.de/fpt/index.html

windows 기반의 c++에서는

[CODE type=c++]
int (CFunc::*func)( int, int );
func = CFunc::GetArea;
CFunc A;
(A.*func)( x, y );
[/CODE]

[출처]
http://izeph.com/tt/blog/155


위 코드 처럼 Class의 맴버 메소드를 함수포인터로 사용할 수 있지만,
unix 기반에서는 사용 할 수가 없다.

unix 기반에서 사용하려면,

[CODE type=c++]
class TClassA
{
public:
  void Display(const char* text) { cout << text << endl; };
  static void Wrapper_To_Call_Display(void* pt2Object, char* text);
};
void TClassA::Wrapper_To_Call_Display(void* pt2Object, char* string)
{
  TClassA* mySelf = (TClassA*) pt2Object;
  mySelf->Display(string);
};
void DoItA(void* pt2Object, void (*pt2Function)(void* pt2Object, char* text))
{
  pt2Function(pt2Object, "hi, i'm calling back using a argument ;-)");  // make callback
};
void Callback_Using_Argument()
{
  TClassA objA;
  DoItA((void*) &objA, TClassA::Wrapper_To_Call_Display);
}
[/CODE]

[출처]
http://www.newty.de/fpt/callback.html#member

이렇게 래퍼를 한번 거쳐 사용해야 한다.
반응형

'Dev > C, C++' 카테고리의 다른 글

http socket client  (0) 2006.11.23
유용한 소켓 강좌  (0) 2006.09.20
UTF-8 을 EUC-KR 로 변환  (0) 2006.09.04
MFC용 ADO클래스 (버전업)  (2) 2006.07.24
소스상에서 lib링크 하기  (0) 2006.07.07
    'Dev/C, C++' 카테고리의 다른 글
    • http socket client
    • 유용한 소켓 강좌
    • UTF-8 을 EUC-KR 로 변환
    • MFC용 ADO클래스 (버전업)
    newtype
    newtype
    지극히 개인적인 지식의 창고

    티스토리툴바