C# Class Library use in java (클래스 라이브러리)
Java 에서 C# 클래스 라이브러리를 불러오기
C# 클래스 라이브러리가
namespace ClassLibrary2
{
// Interface declaration.
public interface ICalculator
{
int Add(int Number1, int Number2);
};
public class SimpleCalc : ICalculator
{
public int Add(int Number1, int Number2)
{
return Number1 + Number2;
}
}
}
[assembly: ComVisible(true)]
COM Interop 등록
JACOB 라이브러리를 활용하여 C# DLL 을 불러와 보겠다.
http://danadler.com/jacob/
에 들어가서 기본 라이브러리를 추가한다.
jacob.jar 를 Java Build Path 에 추가한다.
ActiveXComponent xl = new ActiveXComponent("Test.SimpleCalc");
try {
System.out.println(Dispatch.call(xl, "Add", new Variant(1), new Variant(2)));
} catch (Exception e) {
e.printStackTrace();
}
JACOB 라이브러리는 기본적으로는 ProgID 를 통해 DLL 파일을 불러온다.
위의 C# 클래스 라이브러리는 ProgID 가 없다.
namespace ClassLibrary2
{
// Interface declaration.
public interface ICalculator
{
int Add(int Number1, int Number2);
};
[ProgId("Test.SimpleCalc")]
public class SimpleCalc : ICalculator
{
public int Add(int Number1, int Number2)
{
return Number1 + Number2;
}
}
}
ProgID 를 추가하여 준다.
그 다음 해당 파일을 regasm 으로 등록한다.
그런 다음 Java 를 실행해 보면
Add 가 정상적으로 작동한다.
'Programming > C,CPP,CS' 카테고리의 다른 글
.Net FrameWork 버전 확인 방법 (0) | 2016.04.05 |
---|---|
C# Class Library use in script (1) | 2016.04.05 |
C# Class Library DLL 만들기, use in mfc (1) | 2016.04.05 |
c, cpp, com, atl, stl, vc7 String (0) | 2016.03.28 |
PostMessage , SendMessage 쓰레드간 메시지 주고받을때, 동기화 (0) | 2016.03.28 |