>백엔드 개발 >C++ >매크로나 .def 파일을 사용하지 않고 Visual Studio에서 DLL의 모든 기호를 어떻게 내보낼 수 있나요?

매크로나 .def 파일을 사용하지 않고 Visual Studio에서 DLL의 모든 기호를 어떻게 내보낼 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-11-25 22:48:10930검색

How Can I Export All Symbols from a DLL in Visual Studio Without Using Macros or .def Files?

매크로나 .def 파일 없이 DLL의 모든 기호 자동 내보내기

Visual Studio 2005에서는 DLL의 모든 기호를 내보낼 수 있습니다. __declspec(dllexport)를 수동으로 추가하거나 .def 파일을 생성하지 않고도 가능합니다. 이는 다음 단계를 통해 수행됩니다.

CMake 사용(권장)

  • "내보내기"가 포함된 CMake 버전 3.3.20150721-g9cd2f 이상을 설치합니다. 전체' 기능.
  • 라인 추가 (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)을 CMakeLists.txt 파일에 설정합니다.
  • CMake를 사용하여 Visual Studio 프로젝트를 만듭니다.
  • 프로젝트를 컴파일하면 모든 기호가 자동으로 내보내집니다.

참고: 이 방법을 사용할 때는 /GL을 확인하세요. (전체 프로그램 최적화)이 활성화되어 있지 않습니다.

.obj 파일 구문 분석

  • .obj 파일을 구문 분석하고 내보낸 기호를 추출하는 프로그램을 만듭니다.
  • 호출 규칙, 기호 필드, 외부/정적 등의 정보 수집
  • 추출된 기호로 .def 파일을 생성합니다.
  • .def 파일을 사용하여 DLL을 연결합니다.

이 방법에는 추가 노력이 필요하지만 .obj 파일 구문 분석에 유연성을 제공합니다.

추가 팁

  • C 함수에 __declspec(dllexport) 또는 __cdecl 내보내기 매크로를 사용하면 이름 변경을 방지할 수 있습니다.
  • 정적 라이브러리를 사용하여 기호를 내보낸 다음 구문 분석하고 추출하여 .def 파일에서 사용하세요.

위 내용은 매크로나 .def 파일을 사용하지 않고 Visual Studio에서 DLL의 모든 기호를 어떻게 내보낼 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.