우리 신청서에서 두 번의 전화 요청이있었습니다. 이 두 dlls
은 다른 그룹 및 다른 회사 출신입니다. 관리 및 비 관리에 대해 조금 읽었습니다. 나는 관리 전화를하는 것을 선호합니다. 그러나 사용 또는 관리되지 않는 사용 여부는 발신자 만의 결정인지 또는 피 호출자에 따라 결정됩니까? 모든 dll은 관리 코드로 호출 할 수 있습니까? 피 호출자도 요소 인 경우이 DLL이 관리되는 코드로 호출 될 수 있음을 어떻게 알 수 있습니까? DLL이 관리 코드로 작성되어있는 경우C# 관리 dll 호출 또는 관리되지 않는 dll 호출?
1
A
답변
1
그것은 관리 호출 수 있습니다. 그렇지 않으면 관리되지 않는 전화를해야합니다. 두 부분을 모두 관리 된 통화로 관리해야합니다.
1
나는 .Net dll 또는 .Net 외의 호출을 의미합니다. 당신이 모두 같은 닷넷 데이터 유형이 있고 의미가 같은 전화를 같이 제어되지 않는 코드베이스와 상호 운용 할 때
관리 코드는 위험의 수준을 제거합니다.
당신이 배열의 순서와 방법 스택에 객체 참조를 밀어하는 방법에 문제가있을 수 있습니다 닷넷되지 않는 경우 DLL이에 기록 된 어떤 언어 따라. 또한 주어진 객체/기본 값에서 직접 돌연변이를 수행하는 경우 DLL을 안전하게 호출하기 위해 객체를 메모리에 고정해야 할 수도 있습니다.
1
당신은 확실히 당신이 사용하려고하는 DLL에 대한 자세한 정보가 필요.
DLL이 관리되지 않는 경우
, 당신은/해당 P 쓰기 통화를 할 정보를 호출 할 수 있도록 수출 기능에 대한 자세한 정보가 필요 할 것입니다. 예를 들어 this MSDN Article 또는 http://pinvoke.net을 참조하십시오.DLL이는 COM을 기반으로 또는 .NET는, 당신은 Visual Studio를 통해 프로젝트에 대한 참조를 추가 할 수 있으며 직접 액세스하는 경우.
0
.NET에서 관리 코드 호출을 처리하기 위해 DLL을 작성하는 것이 좋습니다. . NET 어셈블리를 COM으로 설정하고 regasm 도구를 사용하여 등록하고 비 관리 코드로 동일한 객체를 호출 할 수 있습니다.
[ComVisible(true)]
http://edn.embarcadero.com/article/32754
http://msdn.microsoft.com/en-us/library/tzat5yw6(VS.71).aspx
관련 문제
- 1. VB에서 관리되지 않는 DLL 호출
- 2. 관리 코드에서 관리되지 않는 DLL 함수 호출 오류
- 3. C#에서 관리되지 않는 C++ VS 6.0 MFC DLL 호출
- 4. .NET 웹 서비스 - 관리되지 않는 C DLL 호출 방법
- 5. C++에서 관리되지 않는 DLL #
- 6. Python에서 C++ DLL 호출
- 7. Delphi에서 포인터로 DLL 호출
- 8. 내 보낸 된 관리되지 않는 C++ DLL
- 9. 델파이 DLL 호출
- 10. 관리되지 않는 C++에서 관리되는 DLL을 호출 할 수 있습니까?
- 11. 다른 DLL에서 DLL 호출
- 12. C# dll 호출 C++ dll 가져 오기 EntryPointNotFoundException
- 13. 원격 DLL 호출
- 14. 서블릿에서 DLL 호출
- 15. 호출 비 DLL 기능은
- 16. 동적으로 COM DLL 호출
- 17. VBA에서 DLL 호출
- 18. 크로스 DLL 호출
- 19. 는 바이트 [] [] C inbetween ++ 관리되지 않는 DLL 및 C#을
- 20. C#에서 C++ 헤더로 dll 호출
- 21. InstallAware 또는 InstallShield에서 dll 함수 호출
- 22. C#에서 관리되지 않는 dll 버전 가져 오기
- 23. 관리되지 않는 dll, hangs/waiting/slow
- 24. DLL 관리
- 25. C# DLL P/호출 CallbackOnCollectedDelegate 오류
- 26. DLL 내부에서 EXE 함수 호출
- 27. C#의 관리되지 않는 C++ DLL WINAPI 및 포인터
- 28. (관리되지 않는) C++에서 XLL 호출
- 29. 관리 코드에서 사용자 지정 작업 dll
- 30. VC++ 및 C# 관리 DLL 또는 관리되지 않는 DLL을 작성하는 방법은 무엇입니까?
는 어떻게 DLL이 관리 코드로 작성 알 수 있습니까? 그 결과의 어떤 지시자라도 나에게 보낸다? – 5YrsLaterDBA
구성 요소의 설명서는 대부분 좋은 지표입니다. – GvS
@ 5YrsLaterDBA : 오른쪽 마우스 버튼을 클릭하고 속성을 수행하고 버전 탭에 어셈블리 버전이 있는지 확인하십시오. 그렇다면 아마 관리 할 수 있습니다. Visual Studio에서 관리 DLL이나 COM 구성 요소가 아닌 경우 해당 구성 요소에 대한 참조를 추가하면됩니다. –