2012-05-08 2 views
0

관리되는 dll을 호출하는 관리되는 exe를 가지고 있습니다 (모두 c로 작성되고 vs2010 C++로 컴파일 됨).dll을 찾을 수 없습니다 vs2010 c

프로그램을 실행할 때 내 컴퓨터에서 dll이 없어 프로그램을 시작할 수 없다는 오류가 발생합니다. 링커에서 링커 -> 입력 -> 추가 종속성 아래에 dll 라이브러리가있는 폴더가 추가되었습니다. 또한 링커 -> 일반 섹션에서 추가 포함 라이브러리 아래에 폴더가 나열되어 있습니다.

나는 우둔 오전

...

+0

어떤 DLL이 누락되었다고합니까? DLL이 실제로 존재합니까? 그렇다면 어디에서? –

+1

링커 설정은 여기에서 관련이 없습니다. Windows는 프로그램을 시작할 때 DLL을 찾을 수 있어야합니다. .exe 파일이있는 빌드 디렉토리에서 사용할 수 있는지 확인하십시오. 이것을 넘어선 당신을 돕기가 어렵다. C로 관리 코드를 작성할 수 없다. –

+0

dll은 mcDll이라는 내가 작성한 것이다. 링커 -> 입력 -> 추가 종속성 디렉토리에 지정된 디렉토리에 있습니다. – PaeneInsula

답변

1

문제는 DLL이 .exe 인이 실행되고 있던 곳과 같은 디렉토리에이 아니었다는 것이다. 그러나 매번 수동으로 dll을 복사하고 싶지 않았고 다른 .exes에서 사용 중이기 때문에 더 나은 솔루션은 빌드 후 이벤트를 추가하는 것이 었습니다.

한 가지 더 중요한 메모 : 나쁜 질문을하기 위해 다른 -1로 닉네임을 쓰는 것을 두려워해서, 나는 그런 포스트 빌드 사본을하는 데 필요한 마법의 묘약/주문을 들고 몇 시간을 보냈다. 여기있어. 매크로,/Y 및 특히 각 경로 이름의 전체 엉망 주위 따옴표 사용을 유의하십시오.

xcopy /Y "$(SolutionDir)x64\Release\mcDll.dll" "$(SolutionDir)stream\x64\Release" 
관련 문제