저는 정말 모호한 문제가 있습니다.하지만 누군가 도와 줄 수 있기를 바랍니다. 나는 C++ 프로젝트를 수정하고 있었고 어제는 여전히 작동했지만 오늘은 그렇지 않습니다. 나는 아무것도 바꾸지 않았지만 SVN에서 프로젝트를 다시 확인하고 이전 시스템 복원 지점으로 되돌리기까지했습니다 (이것은 업무용 컴퓨터이기 때문에 비밀리에 업데이트 등을 설치합니다.). 성공적으로 컴파일 한 후에는 프로그램을 시작할 수 있지만이 프로그램과 상호 작용하면이 오류가 발생합니다. 프로 시저 엔트리 포인트? methodName @ className @@ UAEXXZ를 동적 링크 라이브러리 libName.dll에서 찾을 수 없습니다.확실히 "넣을 때"프로 시저 엔트리 포인트를 dll에 둘 수없는 이유는 무엇입니까? "
인터넷을 검색했지만 대부분의 사람들의 문제는 사용중인 DLL의 이전 버전 때문에 발생하는 것으로 보입니다. 내 컴퓨터를 검색했는데 이전 버전이 없습니다. 올바른 버전을 삭제하면 응용 프로그램이 시작되지 않습니다. 그런 다음 프로젝트를 다시 컴파일하면 DLL이 다시 만들어 지므로 응용 프로그램이 올바른 DLL을 사용하고 있고 컴파일에서 생성 중이라는 것을 확신합니다. 오류가 참조하는 메서드에 구문 오류를 도입하면 프로젝트가 컴파일을 거부하므로이 메서드가 포함 된 파일도 컴파일 중임을 의미합니다.
기본적으로 저는 DLL의 연결에 대해 전혀 몰라요. 그래서 프로젝트에서 매우 명확하게 정의 된 기능이 왜 갑자기 나타나지 않는지에 대한 아이디어가 있다면 크게 감사하겠습니다. DLL에 더 이상 넣지 마십시오. 나는 이것이 모호하고 더 많은 정보가 필요하다면 기꺼이 그것을 제공 할 것이다. 감사!
업데이트 : 나는 주어진 제안을 시도했지만 여전히 붙어 있습니다. __declspec(dllexport)
은 분명히 전체 프로젝트에서 사용되지 않습니다. Dependency Walker로 DLL을 열면 비어있는 오른쪽 상단 섹션이 표시되고 아래 섹션에는 오류 메시지의 기능이 나열됩니다. 내가 Undecorate C++ 기능을 선택하면 그것을 잘 보이는,하지만 난 그렇게하지 않으면 나는 오류 메시지에서 이상한 물음표와 @s을 얻고 마지막에 차이가있을 나타납니다 : 아마도
[email protected]@@UAEXXZ
[email protected]@@[email protected]
이것이 문제이지만, 나는 이것이 무엇을 의미하는지, 이것이 무엇을 일으켰는지, 내가 그것에 대해 할 수있는 것을 전혀 모른다.
/Wall to VC++ 컴파일러 옵션을 추가해 보셨습니까? 힌트를 줄 수도 ... – Romain