Visual C#에서 아무런 문제없이 사용하고있는 DLL을 가지고 있습니다 (단순히 참조를 추가하고 네임 스페이스를 사용함). 이제 C++을 배우려고하는데 DLL에서 네임 스페이스를 참조하는 방법을 이해하지 못합니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 '참조'를 선택하고 '새 참조 추가'를 클릭하면 비어있는 '프로젝트'창이 나타납니다. 내가 뭘 놓치고 있니?Visual Studio C++에서 DLL 사용
답변
C++은 DLL 참조를 처리 할 때 C#/VB.Net과 다른입니다. 입니다. C#에서 참조를 수행하는 데 필요한 모든 것은 내부에있는 구조를 설명하는 메타 데이터를 포함하기 때문에 DLL입니다. 컴파일러는이 정보를 다른 프로젝트에서 사용할 수 있도록 읽을 수 있습니다.
C++에는 DLL에 메타 데이터라는 개념이 없으므로 C#에서는 메타 개념이 없습니다. 대신 명시 적으로 메타 데이터를 헤더 파일 형태로 제공해야합니다. 이러한 파일은 C++ 프로젝트에 포함되어 있으며 DLL은 런타임에로드됩니다. C + +에서 말하기 위해 실제로 "참조를 추가"하지는 않지만 대신 헤더 파일을 포함하십시오.
헤더 파일이 포함되면, 당신은 다음 CPP 파일에
using namespace SomeNamespace;
편집을을 포함하여 네임 스페이스에 액세스 할 수 있습니다 : 당신이 관리되지 않는 C++를 사용하는 경우 이전의 대답은 더 도움이 될 것입니다; 나는 당신이 관리되는 C++을 목표로 삼고 있다는 C# 레퍼런스 때문에 추측했다.
'참조 추가'대화 상자에는 일련의 탭이 있어야합니다. '프로젝트'는 현재 솔루션의 프로젝트를 나열합니다. .NET은 GAC에 설치된 라이브러리를 나열하고 '찾아보기'를 사용하여 직접 DLL을 찾을 수 있습니다.
DLL에 대한 참조 만 추가하려는 경우 '찾아보기'로 수행 할 수 있어야합니다. 소스가있는 프로젝트의 결과물 인 경우 프로젝트를 솔루션에 추가하면 '프로젝트'탭에 해당 프로젝트가 표시됩니다.
이 방법이 도움이되지 않는다면 사용하고있는 Visual Studio 버전과 사용하려는 DLL은 어디에 있습니까?
우선 C# 응용 프로그램에서 사용한 것과 동일한 DLL을 사용하려는 경우 순수 네이티브 C++를 사용하는 경우 해당 DLL을 호출하기가 쉽지 않습니다. 문제는 C#에서 참조하는 DLL이 .NET 프레임 워크 (모든 C#, VB.NET 및 C++/CLI 어셈블리가 "Managed"DLL 임)에 의존하여 실행된다는 것입니다. C++에서 "관리되는"코드를 쉽게 참조 할 수있는 방법은 Visual Studio의 C++ 프로젝트 마법사에서 "CLR"섹션에서 선택하여 관리되는 C++ 프로젝트 (AKA C++/CLI)를 작성하는 것입니다. 그렇지 않으면 관리되는 DLL에 액세스하는 유일한 방법은 COM에 노출시키고 COM을 사용하여 개체에 액세스하는 것입니다.
- 1. Visual Studio 2010에서 .dll 사용 C++
- 2. Visual Studio 2010 C++ 프로젝트에서 DLL 사용
- 3. visual studio 2008 dll 문제
- 4. Visual Studio : 구성을위한 다른 DLL
- 5. Visual Studio 2008에서 Dll 폴더 변경 C#
- 6. Visual Studio 2010에서 비 관리 코드가있는 DLL 사용?
- 7. Visual Basic에서 dll 대신 CLS 사용
- 8. Visual Studio 사용 플러그인
- 9. Visual Studio Installer를 사용하여 GAC에 DLL 등록하기
- 10. Visual Studio 2010 C++에서 DLL 연결
- 11. Visual Studio 2008의 DLL 자동 버전
- 12. Visual Studio 2008에서 MFC dll 기호가로드되지 않습니다.
- 13. WDK에 Microsoft Visual Studio DLL 연결 LIB
- 14. Visual Studio 디버깅 참조 된 DLL
- 15. Visual Studio .dll 참조를 찾을 수 없습니까?
- 16. 어떻게 Visual Studio C에서 변수를 유지합니까
- 17. Visual Studio C에서 영역 채우기 C#
- 18. C에서 DLL 디버깅 #
- 19. Visual Studio 2010에서 Inconsolata 사용
- 20. Visual Studio 2010에서 LibTiff 사용
- 21. Visual Studio 2010에서 PCL 사용
- 22. Visual Studio 2005에서 WatiN 사용
- 23. Visual Studio 외부에서 VersionControlExt.Explorer 사용
- 24. Visual Studio 시계 사용 메모리
- 25. Visual Studio 2010 Professional 코드 계약 사용
- 26. Visual Studio에서 DLL 연결
- 27. 타사 DLL 파일 디버깅에서 Visual Studio 2010 제한
- 28. qt 작성자에서 DLL 사용
- 29. 재배포 가능 컴파일러 - MS Visual Studio 용 DLL
- 30. Visual Studio 2010 express
Ew, 네임 스페이스 사용 : | – GManNickG
@Gman, 헤더 파일에서 수행되는 경우는 정말 악합니다. 나는 "당신의 CPP에서"파일을 말하려고했지만 C++을 대신 입력했습니다. – JaredPar
'네임 스페이스 사용'은 다른 모든 것과 마찬가지로 올바르게 또는 잘못 사용될 수있는 도구입니다. '네임 스페이스를 사용하여'헤더 파일에 - 나쁜. C++ 파일에서 '네임 스페이스 사용'- 일반적으로 괜찮습니다. 그것이 문제를 일으킬 때까지, 당신은 단지 그것을하는 것을 멈춘다. –