2011-11-20 5 views
4

C++로 작성된 DLL과 그 안에 Perl 인터프리터를 가지고 있고 Phil Harvey가 Perl 라이브러리 exiftool을 C++ 함수로 호출해야합니다.DLL을 만드는 C++ 응용 프로그램에 Perl 인터프리터를 포함 시키려면 어떻게해야합니까?

Visual Studio 2010 VC++이 설치된 Windows 7에서 실행하고 싶습니다. 이 작업에 가장 적합한 Perl 배포는 Strawberry 또는 ActiveState Perl입니까? 또한, 펄 컴파일 명령 : nmake 또는 dmake?

결국 최종 산출물은 DLL이어야합니다. 이것은 어떤 프로그램 C로든 가져올 수 있고 내부적으로 Phil Harvey의 exiftool 라이브러리 함수/인수/스위치를 호출 할 DLL 함수가 호출 될 것입니다.

+0

왜'system ("perl.exe foo.pl")이 허용되지 않습니까? – moshbear

+2

이 질문은 http://stackoverflow.com/questions/49168/how-can-i-embed-perl-inside-a-c-application 비슷해 보이지만 Visual Studio/Windows에 대한 대답은 아닙니다. –

답변

2

Perl을 설치 한 경우, 먼저 유닉스 시스템에서 "man perlembed"와 같은 perlembed에 대한 맨 페이지를보아야합니다. 당신이 Windows를 사용하고 있기 때문에 공식 Perl documentation on the web for "perlembed"을 보는 것이 좋습니다.

해당 정보 페이지에는 Win32의 특정 섹션이 있습니다. DLL로서 perl을 포함하는 것에 대한 구체적인 사항과주의 사항에 대해서는별로 도움이되지 않습니다.

+0

MOSHBEAR; 모든 답장을 보내 주셔서 감사합니다. .EXE를 DLL에 임베드 할 수 있으므로 .EXE를 사용할 수 없습니다. VC++ 프로젝트에 포함되어 있고 .DLL이 만들어지면 최종 산출물은 .DLL –

+0

.EXE 여야하지만 최종 산출물은 동일한 폴더에있는 두 개의 파일 ... EXE와 .DLL이됩니다. 어느 쪽이 필요하지 않습니다 ...... .DLL ....만이 perl 인터프리터를 임베딩하고 exiftool philharvey 소스 코드를 실행하여 VC++을 통해 perl 함수를 호출 한 다음 DLL을 만듭니다. –

+0

죄송합니다 ..... EXE 파일은 .DLL ..... 또는 .EXE는 이진 파일을 읽을 수 없습니다. –

0

다소 과장 될 수 있지만 a SWIG page은 NMAKE에서 Perl에 액세스하고 Visual Studio에서 확장명을 언급합니다.

관련 문제