2014-03-31 5 views
0

가 발생, 나는 다음과 같은 명령을 사용하여 변경하지만 난이 DLL을는 Assembly.Load은 C#을 내가 C++/CLI로 작성된 DLL을로드하기 위해 노력하고있어 사용 AccessViolationException

System.AccessViolationException를로드하려고 할 때마다 오늘은 다음과 같은 오류를 받기 시작 정확히 확인하지 :. { "읽거나 보호 된 메모리를 쓰려고 시도 이것은 다른 메모리가 있다는 표시가 종종 손상되었습니다. "}

dll과 코드를 읽는 것이 모두 동일한 솔루션에 있으며 dll 자체가 자주 변경됩니다 (따라서 dll을 사용하는 이유).

누구든지이 예외를 일으킬 수있는 아이디어가 있습니까?

부록 : 나는 부스트를 사용 나는 최근에 추가 된 lib 디렉토리로 좁혀했습니다

. 내가 BOOST_LIB_DIAGNOSTIC를 사용하고 다음 사용 발견

LIB 파일에 링크 : LIB 파일에 링크 libboost_date_time-vc100 마을-GD-1_54.lib

을 : libboost_thread-vc100-MT-gd- 1_54.lib

lib 디렉토리 파일에 링크 : libboost_system-vc100-MT-GD-1_54.lib

lib 디렉토리 파일에 링크 : libboost_chrono-vc100-MT-GD-1_54.lib

비슷한 문제를 처리하는 것으로 보이는 boost 게시물을 발견했지만 실제로 내 문제를 해결하지는 못했습니다. 그것은 BOOST_ALL_DYN_LINK 처리기 정의를 사용하여 말한다 그러나 않는 모든 추가 연결 오류가 발생할 수 있습니다 :

치명적인 오류 LNK1104 : 파일을 열 수 없습니다 'boost_date_time-vc100-MT-GD-1_54.lib'

+0

dll이 올바르게 컴파일되지 않을 수 있습니까? – jamesthollowell

+0

그렇지 않으면 DLL이 없을 것이라고 나는 올바르게 컴파일합니다. 어쨌든 나는 1.7 MB dll을 생산하는 별도의 프로젝트에서 그것을 컴파일하고있다. – hidra2000

+0

응용 프로그램을 관리자로 시작하십시오. – nXu

답변

0

가장 명백한 방법으로 문제가 해결되었습니다.

위로부터 부스트를 다운로드하고, 누락 된 파일이 있습니다 (어떤 이유로 든 내 폴더에서 누락되었습니다).

요약 : 은 전처리 자 정의를 추가하고, 누락 된 파일을 모두 얻으려면 다시 컴파일하고, 해당 폴더에 dll이 있는지 확인했습니다.

관련 문제