2014-02-24 2 views
1

함수에 대한 포인터를 다른 함수에 전달할 수 있습니까? 나는이 같은 기능을 가지고 : Llvm C++ API 패스 다른 함수에 함수 포인터

typedef void (*pPrintState)(std::string* buffer); 

그래서 내가 pPrintState을 JITed과 LLVM :: 사용할 수 FunctionType 있습니다 pPrintState이 같은 형식 정의가

std::string PRINT_STATE_NAME(pPrintState func); 

.

다음은 llvm C++ API에서 위에 정의 된대로 PRINT_STATE_NAME()을 호출하려고합니다. 불행히도 나는 호출 명령어에 어떤 파라미터를 전달할지를 알 수 없다. Atm 변환 된 pPrintState의 내부 형식을 사용하여 llvm :: GlobalVariable을 만들었습니다. 하지만 이니셜 라이저로 무엇을 전달해야합니까? 아니면 내가 완전히 잘못된 길에 왔을 까? 어떤 도움을 주셔서 감사합니다! 감사!

답변

1

getPointerToFunction() 또는 getPointerToNamedFunction()를 통해 pPrintState의 주소를 얻고 pPrintState에이 주소를 정수로 캐스팅하여 인수로 전달해야합니다.