어떻게 처음에 다시 쓸 필요가 없도록 COM 서버를 CLR 어셈블리로 변환 할 수 있습니까?COM 어셈블리를 CLR 어셈블리로 변환하는 방법은 무엇입니까?
2
A
답변
0
나는 이것을 OP에 게시했습니다. 질문을 편집하기 위해 origionally 게시했습니다.
.NET에서 (1992 년에 C++/MFC를 사용하여 작성한) COM 서버를 다시 작성하는 대신 CLR 어셈블리로 변환하기로 결정했습니다. COM 어셈블리 (add32.exe)를 가져와 .Net 클라이언트에서 사용하려면 호출 가능 래퍼를 만들어야합니다. Visual Studio 명령 프롬프트 (관리자)로 모든 도구를 실행하십시오.
1 단계 : 강력한 이름의 COM 어셈블리에 서명
2 단계 : CLR 어셈블리에 COM 형식 라이브러리에있는 정의를 변환하는
정의 변환 Tlbimp.exe 도구를 사용하여 COM 형식 라이브러리에서 CLR 어셈블리로 찾았습니다. Tlbimp.exe의 출력은 원본 형식 라이브러리 내에 정의 된 형식의 런타임 메타 데이터가 들어있는 이진 파일 (어셈블리)입니다. 출력은 DLL 파일입니다. .Net COM 클라이언트에 메타 데이터를 쉽게 포함 할 수 있도록 네임 스페이스를 지정합니다.
단계 3 : Ildasm.exe를 어셈블리를 볼 수 있습니다.
우리는 솔루션에 대한 참조를 만들려면 CLR 어셈블리를 사용합니다. dll 파일을 찾아서 참조로 추가하십시오.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Add32Pkg;
namespace TestAdd32
{
class Program
{
[STAThread]
static void Main(string[] args)
{
Add32Server Add32 = new Add32Server();
Add32.Init(201);
}
}
}
관련 문제
- 1. 정규 표현식을 어셈블리로 변환하는 방법은 무엇입니까?
- 2. UAL 어셈블리를 C에서 UAL 어셈블리로 어셈블
- 3. 표준 COM 객체를 ActiveX로 변환하는 방법은 무엇입니까?
- 4. .NET 어셈블리로 .exe를로드하는 방법은 무엇입니까?
- 5. .NET 어셈블리를 COM 101로 노출
- 6. (.net) COM + 어셈블리를 GAC에 설치해야합니까?
- 7. 어셈블리를 통해 데이터베이스에 액세스하는 올바른 방법은 무엇입니까?
- 8. 구문 트리를 어셈블리로 변환하는 데 필요한 리소스는 무엇입니까?
- 9. Win32 어셈블리를 제거하고 WinSxS를 정리하는 방법은 무엇입니까?
- 10. csc.exe를 사용하여 COM DLL을 참조하는 어셈블리를 컴파일하십시오.
- 11. 타사 어셈블리를 참조하는 COM + (.NET) 응용 프로그램
- 12. WinXP 컴퓨터에 COM 어셈블리를 자동으로 등록하는 방법
- 13. 어셈블리를 gdb에서 호출하는 방법은 무엇입니까?
- 14. GAC에서 어셈블리를 언로드하는 방법은 무엇입니까?
- 15. 디렉토리에서 어셈블리를 스캔하고로드하는 방법은 무엇입니까?
- 16. 어셈블리를 작성하고 저장하는 방법은 무엇입니까?
- 17. 어셈블리를 디스크에 저장하는 방법은 무엇입니까?
- 18. 이 어셈블리를 해석하는 방법은 무엇입니까?
- 19. clr 어셈블리에서 char * 배열을 반환하는 방법은 무엇입니까?
- 20. 구현 및 계약 어셈블리를 WCF 어셈블리와 연결하는 방법은 무엇입니까?
- 21. CLR 어셈블리의 리소스를 추가, 삭제 및 업데이트하는 방법은 무엇입니까?
- 22. C++ \ Cli COM 어셈블리를 MSI에서 등록 할 수 없습니다
- 23. 어셈블리를 다시 컴파일하지 않고 Strong-Named 어셈블리로 변환 할 수 있습니까?
- 24. COM 인터페이스를 발전시키는 방법은 무엇입니까?
- 25. 위성 어셈블리를 .resource 파일로 변환하는 유틸리티
- 26. 어셈블리를 C++로 변환하는 프로그램이 있습니까?
- 27. 비 CLR 프로그램에서 .NET 어셈블리를 사용할 수 있습니까?
- 28. 어셈블리를 통해 액세스하여 제네릭 형식을 처리하는 방법은 무엇입니까?
- 29. VS2010 COM interop 버그 해결 방법은 무엇입니까? (INetFwMgr)
- 30. CLR 스레드 풀 구성을 변경하는 방법은 무엇입니까?
인가이 같은 의미 : COM 객체를 사용
클라이언트는 COM 기능을 사용하기 위해, 2
다음 단계에서 생성 된 네임 스페이스를 사용하여 메타 데이터를 가져와야합니다 (아주 좋은, 포괄적 인) 자체 답변? 그것은 어느 쪽의 질문이라도 놓치기 때문에! – Widor
COM 어셈블리를 CLR 어셈블리로 변환하는 작업에 대한 문서를 제공하는 제 방법이었습니다. 커뮤니티와 공유하고 싶었습니다. –
그건 괜찮아요 (그리고 격려해) - 그냥 '[더 나은 예의] (http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-those-where-i- 알고 있기 전에 대답하기 ')를 사용하여 질문에 대답하고 자신의 질문에 대답하십시오. 이것은 두 가지를 허용합니다 - 다른 것들은 잠재적으로 더 나은 답변을 추가 할 수 있고 대답을 찾는 사람들은보다 쉽게 검색 할 수 있습니다. – Widor