암시 적으로 명시 적으로 .DLL을 연결하는 데는 여러 가지 이유가 있습니다. 현재 Visual Studio 2015 및 C++을 SFML과 함께 사용하고 있습니다.DLL의 암시 적 연결과 명시 적 연결 간의 모범 사례는 무엇입니까
암시 적 : - 좋은 쪽 : .DLL 헤더 (.h)에 액세스 할 수 있으며 해당 기능에 대해 알고 있습니다. 연결하고 사용하는 것이 더 쉽습니다. 덜 오류가 발생합니다. 가장 보편적으로 사용되는 것으로 여겨집니다.
- 부모 쪽 : 링크하려면 .lib, .h 및 .dll 파일이 필요합니다. 파일이 많아 지므로 더 많은 디스크 공간을 차지하십시오.
명시 적 : - 좋은 쪽 : .dll 만 필요하기 때문에 디스크 공간을 덜 차지하십시오.
-Bad side : dll에없는 기능을 사용할 가능성이 있기 때문에 오류가 발생하기 쉽고 올바르게로드해야합니다. 헤더가 없으므로 dll에 포함 된 함수를 알 수 없습니다.
1 : 명시 적으로 연결하는 것이 나쁜 습관이라고 들었습니다. 이 올바른지?
2 : 주로 암시 적으로 연결에 초점을 맞추어야합니까?
3 : 확실히 DLL에 대한 지식이 부족합니다. DLL을 연결하는 데있어서 암시 적이고 명시적인 방법을 보지 못해서 더 좋고 나쁜면이 있습니까?
4 : 게임을 할 계획이므로 스프라이트 시트를 dll에 놓으면 포인터로 텍스처를 한 번로드하는 것이 좋습니다.
실제로이 문제를 실제로 시도하려면이 방법이 상당히 잘못되었습니다. 디스크 공간에 차이는 없지만 두 경우 모두 DLL 만 배포하면됩니다.익스플로잇 (Explicit)은 dev 머신에 * 더 많은 공간을 필요로하므로, 함수 포인터 유형을 선언 할 필요가 없으며 내보내기를 파기하는 코드를 무시할 수 없다. 특히 SFML과 같은 대형 라이브러리의 경우 유지하기가 매우 힘든 코드입니다. DLL에 내보내기가 없을 수도 있기 때문에 *를 명시 적으로 사용해야합니다. DLL을 복사하기 때문에 SFML에서는 필요하지 않습니다. –