2018년 4월 2일 월요일

C에서 C++ 함수 호출하기..

프로젝트를 진행하다 보면
C, C++ 등으로 작성된 파일이나 라이브러리들이 혼재되어 사용되는 경우가
발생할 수 있다.
물론 사용언어가 통일되면 가장 좋겠지만...

이런 경우 C++ 소스에서
C++ 함수를 C에서 사용할 수 있도록 Wrapping 함수를 작성하면
C에서 C++ 함수를 사용하는 것이 가능하다.

//C++ 소스

int get_number(std::string strNumber)
{
return atoi(strNumber.c_str());
}

extern "C" int get_number_c(char *pszNumber)
{
return get_number(pszNumber);
}


//C 소스
int get_number_c(char *pszNumber);

int main(int argc, char *argv)
{
char szNumber[] = "1000";
printf("%d\n", get_number_c(szNumber);
return 0;
}


C++ 소스는 g++로 컴파일
C 소스는 gcc로 컴파일
Link는.. 반드시 g++로..

댓글 없음:

스프린트 정리

스프린트 :  스프린트는 프로토타입을 제작하고 고객과 함께 아이디어를 테스트하여 중요한 문제들에 대한 답을 찾는 독특한 5일 짜리 과정이다. 스트린트는 업무 전략, 혁신 행동과학, 디자인 그 외 여러 분야의 최고 히트작을 어떤 팀에서라도 사용할 수 있...