2010-01-12 3 views
1

이상한 질문이 있지만 AutoCAD는 .ARX 확장명을 가진 확장 DLL을 사용합니다.이 DLL은 확장자 외에도 일반 DLL과 매우 유사합니다.DLL에서 "DLL"확장자가 아닌 다른 모듈에 대한 종속성을 만듭니다.

이제 우리는 세 개의 .ARX 파일을 만들었습니다. 두 개의 후자 파일은 첫 번째 파일에 대한 종속성을 갖습니다. 이 두 가지를로드 할 때 AutoCAD는 필요한 파일을 찾을 수 없다는 불만을 표시하고 Dependency Walker 도구를 사용할 때 Visual C++ 2008 링커가 .DLL 확장자를 사용하여 첫 번째 파일에 대한 참조를 생성했음을 알게됩니다. 나는 이것이 우리의 문제라고 생각한다. 일부 수출 된 기능에 대해 A.DLL을 찾고 있지만 실제로이 파일의 이름은 A.ARX입니다.

이 겉보기 잘못된 코드를 생성하는 대신 ARX 확장명의 파일에 연결되도록 Visual Studio 프로젝트를 구성 할 수 있습니까?

업데이트 : 이것은 약 C++ DLL에 관한 것입니다.

+0

컴파일 할 언어는 무엇입니까? 그리고 DLL을 어떻게 참조하고 있습니까? –

+0

죄송합니다,이보고 싶었어. C++. 저는 Visual C++ 2008을 사용하고 있습니다. – Jonas

답변

1

다른 ACAD 어도비 확장에 정적으로 링크해야하는 이유가 확실하지 않습니다. 공유 함수는 아마도 다른 DLL로 리팩토링되어야합니다. 또는 change the output file name generated in the export lib file 수 있습니다.

+0

당신은 동적 링크를 의미합니까? 예, 아마도 다른 두 확장 프로그램에서 코드를 복제 할 수 있습니다.이 코드는 내가 처음 생각한 것보다 쉽게 ​​해결할 수 있다고 생각했습니다. 나는 이미 출력 파일 이름을/OUT : 지시어로 변경했다.하지만 문제는 링크 타임에 링커가 DLL 확장자가있는 DLL에 연결하려고한다고 가정하는 것인데, 나중에 해당 파일을 작성할 때 최종 출력은 .ARX로 명명됩니다. 출력 파일을 바이너리 편집하여이 문제를 해결했지만 그게 문제가 아니기 때문에이 질문을 지금 당장 열어 두겠습니다. – Jonas

+0

이상한, VC2005에서 C++ DLL을 만들고, 설정에서 출력 파일 이름을 변경하고, 생성 된 lib를 좋아하고, 내 exe가 dll 확장자없이 파일을로드합니다. –

관련 문제