2011-10-10 2 views
1

안녕하세요,
사양 : VS 2010 C++ professional edition.내 프로젝트에서 .dlls 사용하기

테스트 할 통계 함수가있는 프로젝트가 있습니다. 그래서 테스트 할 함수가있는 프로젝트의 솔루션에 추가 한 간단한 테스트 콘솔 응용 프로그램을 작성했습니다. 여기 내 프로젝트의 상세 레이아웃입니다 :

프로젝트 BASE, ROC라는 내 통계 응용 프로그램에서 사용되는 기능을 가진 클래스가 포함되어 있습니다. 그리고 나서 roc_test, 간단한 콘솔 응용 프로그램을 사용하여 ROC 응용 프로그램의 일부 기능을 테스트하는 데 사용하고 싶습니다. 지금, ROC베이스roc_test에 대해 ROC이 참조 된 프로젝트로 연결됩니다. 내 문제는 내 테스트 프로젝트를 roc_test 컴파일하려고하면 내 roc_test 프로젝트에 베이스 프로젝트에 속하는 .dll 파일이 없다는 오류가 컴파일러에서 throw됩니다. roc_test 그러나 베이스에 직접 연결되어 있지 않습니다. 나는 그것이 왜 그런 메시지를 던지고 그것이 어떻게 고칠 수 있는지 이해하지 못한다. 명확하게하기 위해 관계를 다른 방식으로 보여 드리겠습니다.

roc_test 함수 ROC.h의 일부 rocfit (..) 함수를 호출한다. DoubleMatrix.h으로 작성된 함수를 사용하여 BASE 프로젝트의 일부인 ROC.h을 사용합니다. 나는 분명히하고 싶다. 오후 8시 30 분 P.S. 문제가 코드에 없기 때문에 링커 설정에서 코드를 표시 할 필요가 없습니다. 도움 주셔서 감사합니다.

편집 : 내 질문은 어떻게 오류를 제거합니까? 테스트 프로젝트를 베이스에 연결해야합니까? 내가해야만한다는 것은 의미가 없습니다. ROC에 연결하기에 충분해야합니다. 내가 맞습니까?

+1

질문 무엇인가? –

+0

나는 컴파일러가 오류를 던져 버린다고 생각한다. . . ' – dsolimano

답변

1

콘솔 응용 프로그램 (또는 경로)과 같은 디렉토리에 포함되어 있지 않으면 런타임에서 ROC 기반 BASE의 의존성을 해결할 수 없으므로 BASE를 포함해야합니다.

편집 : 단순히 ROC를 참조하는 것만으로는 충분하지 않습니다. ROC 및 BASE를 빌드 한 다음 단일 DLL로 링크하는 빌드 옵션이있을 수 있습니다. 조사 할 가치가있을 수 있습니다.

또한 콘솔 응용 프로그램을 사용하는 대신 장기적으로 단위 테스트를 사용하는 것이 좋습니다. 이 MSDN 문서는 C++와 VS2010 테스트 프로젝트를 사용하는 방법에 대해 설명합니다

http://msdn.microsoft.com/en-us/library/ms243171.aspx

관련 문제