프로젝트를 진행하다 보면
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++로..