2012-05-03 2 views
1

두 개의 새로운 C++ 프로젝트가 생성되었습니다. 그 중 하나는 C++ .dll 프로젝트이고 다른 하나는 콘솔 응용 프로그램 프로젝트입니다.C++ 프로그램 내에서 dll 함수 호출

PIPESTOSPACES_API int npipesToSpaces=0; 

PIPESTOSPACES_API int fnpipesToSpaces(void) 
{ 
    return 42; 
} 

나는이 DLL 함수를 호출하고 난 내 C++ 파일에서 기능을 수출을 통해이 일을하고, 그리고 다음 DLL 프로그램

, 여기에 간단한 코드 ( .cpp 파일)의 내 C++ 콘솔 응용 프로그램에서 암시 적 연결.
C++ 콘솔 응용 프로그램에서 이러한 내 보낸 .dll 함수를 호출하는 방법에 대한 단계를 언급 할 수 있다면 좋을 것입니다. 나는 기능을 수출 배울 수 this 페이지를 참조 등

편집 : 현재 비주얼 스튜디오에 모든 물건 비주얼 C++를 사용하고 머리글을 포함하는 경우, 직접 기능 때문에 호출 할 수 있습니다 2010 년

+0

어떤 컴파일러를 사용하고 있습니까? Gcc? ms? – BigMike

+1

@BigMike dll 프로젝트 ... –

+2

@LuchianGrigore DLL을 생성 할 수있는 많은 컴파일러가 있습니다. 음, 아마도 Gcc는 그 중 하나가 아닙니다 ^^. – BigMike

답변

1

프로토 타입을 알고 라이브러리를 가져옵니다.

그렇지 않은 경우 LoadLibrary을 호출하고 dll 핸들을 가져오고 GetProcAddress을 콜백으로 호출합니다.

+0

내 콘솔 applcation 프로젝트에 생성 된 C++ dll을 추가했습니다. 그러나 헤더 "Sampledll.h"를 ​​포함 시키려고하면 다음과 같은 에러 메시지가 나타납니다. '포함 파일을 열 수 없습니다 :'Sampledll.h ': 해당 파일이나 디렉토리가 없습니다.' – user1240679

+0

@ user1240679 VS 프로젝트에서 해당 디렉토리를 확인하십시오. Sampledll.h있는 포함 경로에 있습니다. – BigMike

+0

@ Luchian Grigore : 루트 경로 자체에 직접 추가했습니다. 그러나 여전히 동일한 오류가 발생합니다. 내가 따라 갔던 게시물에있는 링크에서, 그 사람은'.lib '와도 연결되어 있습니다. 그것도 끝나야합니까? 단계에서 손실되는 종류 – user1240679