|
친절한 답변 너무 감사합니다.
제 질문이 약간 잘못 전달된것 같습니다.
만약에 Visual C 쪽에서.. DLL을 만들때의 함수원형이 int WINAPI testDLL ( int x ); 였다면...
이것을 가르키는 함수 포인터는 , C++ builder 어떻게 선언해야 하는가 였습니다.
즉 Visual C 함수의 원형에 WINAPI 라는 키워드 가 없다면 ,
C++ builder에서는 보통의 경우처럼 int ( * funcP ) ( int ) ; 처럼 선언해주고 사용하면 됩니다.
여기서 WINAPI 라는 키워드 가 붙었을때와 안붙었을때, 그 함수를 가리키기 위한
함수포인터의 선언은 어떻게 해야 하는가? 입니다.
그냥 WINAPI 라는 키워드는 그냥 무시해도 되는것인지요?
수고하세요.
BloodWolf 님이 쓰신 글 :
: somez72 님이 쓰신 글 :
: : 답변 대단히 감사합니다.
: : tdump 를 해보니... 함수 목록을 볼수가 있습니다.
: : 조금더 정확한 prototype ( 함수의 인자들 까지 ) 는 볼수 없는건지요?
: :
: : VC의 함수의 원형이 int WINAPI test ( int x );
: : 이라면.. 이것을 가르키는 함수포인터는 C++ builder에서 어떻게 선언해 주는 것이 맞는지요?
: :
: : 보통의 경우라면... int ( * funcP ) ( int );
: : 이렇게 해주는것이 맞는것 같은데요... 원형의 WINAPI의 처리는
: : 어떻게 해야하는지요? 안해도 아무런 상관없는건지요?
: :
: :
: : 수고하세요.
: :
:
: 컴파일해서 실행해 보셨나요? 아무런 문제 없이 동작하시는 것을 확인하실 수 있을 겁니다. :-)
:
: 함수 선언 부분에 굳이 파라미터 명을 지정하지 않고, 함수 구현부에서 지정하셔도 됩니다.
:
: 참고)
:
: [The C++ Programming Language 3rd Edition, 144page]
:
: 7.1.1 Function Definitions[fct.def]
:
: Every function that is called in a program must be defined somewhere(once only). A Function definition is a function declaration in which the body of the function is presented. For example:
:
: extern void swap(int*, int*); // a declaration
:
: void swap(int* p, in* q) // a definition
: {
: int t = *p;
: *p = *q;
: *q = t;
: }
:
: The type of the definition and all declarations for a function must specify the same type. The argument names, however, are not part of the type and need not be identical.
|