0
A
답변
3
비 관리 코드를 호출하려면 Interop을 사용해야합니다.
using System.Runtime.InteropServices; // DllImport
public class Win32 {
[DllImport("User32.Dll")]
public static extern void SetWindowText(int h, String s);
}
다음은 주제를 자세히 설명하는 기사입니다 (코드의 출처도 포함).
는
0
상호 운용성에 대한 대안은 기존의 C++ DLL에 대한 래퍼 역할을 CLR 확장을 사용하여 C++ DLL을 작성하는 것입니다. 이렇게하면 비정상적인 유형을 처리 할 수 있습니다. 마샬링이 작동하지 않는 경우 사용자 지정 구조 또는 클래스. (MSDN에 따르면 마샬링 지원 (http://msdn.microsoft.com/en-us/library/bb531313.aspx)을 확장 할 수 있지만이 작업을 직접 시도하지 않았으며 작업 수행에 따라 작업량이 많을 수도 있습니다.
예를 들어 클래스를 내보내는 DLL에 액세스하려는 경우 C++ 클래스의 인스턴스를 소유하고 C++ 클래스에 매핑되는 .NET 클래스를 정의하는 래퍼 DLL을 가질 수 있습니다. 예를 들어, 우리가 .NET에서 사용할 수 우리의 오래된 C++ DLL 중 하나를 만드는 데 사용하는 C++/CLR의 DLL에서 단편이다 :
// This is the constructor for the CLR (managed) object
FileInf::FileInf()
{
// Create the C++ (unmanaged) object
m_pFileInf = gcnew DILib::FileInf();
}
// This is a managed interface which replicates the old
// unmanaged functionality
bool FileInf::IsDirectory()
{
return m_pFileInf->IsDirectory();
}
상호 운용성은 다음을 고수 작동하면 내가 말하고 싶지만,하지만 난 ' 모든 C++/.NET 인터페이싱 문제를 해결하는 가장 좋은 방법인지 모르겠다.
관련 문제
- 1. DLL을 C++ 프로그램에 연결 QTCreator
- 2. 내 C++ 코드의 DLL을 만드는 방법.
- 3. C# dll을 문서화하는 방법
- 4. WinCE SOAP/Webservice 클라이언트 C/C++
- 5. C# dll을 사용하여 C++ DLL을 호출해야합니까?
- 6. C# : 종속 DLL을 포함하는 방법?
- 7. C# 프로젝트에서 dll을 추가하는 방법
- 8. IronPython에서 C# dll을 사용하는 방법
- 9. C에서 C++ DLL을 언로드하는 방법
- 10. C++ .exe에서 dll을 컴파일하는 방법
- 11. C#에서 컨트롤의 속성을 변수에 바인딩하는 방법?
- 12. WinCE C# App에서 WebApp로 텍스트 값 전달
- 13. .NET에서 PATH 내 C# DLL을 검색하지 않습니다.
- 14. 내 프로그램에 dll을 동적으로로드 할 때의 문제
- 15. 목록을 DataGridView/ListBox .NET에 바인딩하는 방법 C#
- 16. 문제 .dll을 C# Windows 응용 프로그램에 참조하는 중
- 17. usercontrol을 응용 프로그램에 바인딩하는 방법 viewmodel
- 18. VS2010 C++ 프로젝트에 DLL을 추가하는 방법
- 19. 다른 DLL을 C++ 객체에 전달하는 방법 _ITERATOR_DEBUG_LEVEL
- 20. C/C++ dll을 .NET 응용 프로그램으로 가져 오는 방법
- 21. 기존 프로그램의 dll을 어떻게 C# Windows 응용 프로그램에 통합합니까?
- 22. C++에서 JNI DLL을 호출하는 방법
- 23. C# : winforms 단추의 텍스트를 리소스에 바인딩하는 방법
- 24. DataGridViewComboBoxColumn을 OnChange 이벤트에 바인딩하는 방법 (C#)
- 25. 내 C# .net 응용 프로그램에 WndProc 사용
- 26. 내 프로그램에 배경 음악을 추가하는 C# (날카로운)
- 27. C++ 및 C#, C++에서 래퍼 dll을 만드는 방법 C++에서 인스턴스 함수를 호출하려면 dll을 사용 하시겠습니까?
- 28. C#/Vista에서 내 뒤에있는 응용 프로그램에 마우스 이벤트를 전달하는 방법?
- 29. Visual C++ 빌드를 브라우저에 dll을 등록하는 방법?
- 30. VB6 : DLL을 만들고 C#에서 사용하는 방법?