2011-01-12 3 views
0

는 내가 DLL을 writting 오전 :호출 비 DLL 기능은

을하지만 MS VC에서 컴파일 할 때 그것이 말하는 표현 ++ :

오류 C3861 : '테스트' : 식별자를 찾을 수 없음

myDLLFunc에서 test으로 전화하는 방법은 무엇입니까? 나는 분명한 것을 놓치고 있습니까?

미리 감사드립니다.

답변

4

코드에서 호출자보다 먼저 호출 된 함수를 넣으면 컴파일해야합니다. C++은 호출 된 함수에 대해 '미리보기'를하지 않으므로 사전에 선언해야합니다.

#include "stdafx.h" 

int test(int arg) 
{ 
    return arg * arg; 
}_DLLAPI int __stdcall myDLLFunc() 

{ 
    return test(4); 
} 

일반적으로 의존성의 복잡성을 줄이기 위해 (코드 파일에서) 정의에서 (헤더 파일) 별도의 함수의 선언을 유지하는 것입니다.

+1

또는 myDLLFunc() 위로 test()를 이동하지 않고 test()를 선언 할 수 있습니다. –

+0

@ 가넷 - 감사합니다. 헤더/코드 분리에 대한 메모를 추가했습니다. –