C# DLL 을 만들어서 Delphi 에서 사용하고자 합니다.
C# 으로 작성한 클래스 소스는 간단합니다.
더하기, 빼기 2개의 메소드와 곱셉과 나눗셈이 가능하도록 인터페이스를 정의 하였습니다.
public interface IAdvancedMath
{
int Multiple(int x, int y);
int Divide(int x, int y);
}
public class CSharpCalc : IAdvancedMath
{
....
public int Add(int x, int y) {return x+y;}
public int Subtract(int x, int y) {return x-y;}
int IAdvancedMath.Multiple(int x, int y) {return x*y;}
int IAdvancedMath.Divide(int x, int y) {return x/y;}
....
}
이를 Delphi 에서 사용하기 위해 레지스트리 등록하고 TLB 파일 생성 했습니다.
다음으로 Delphi 에서 Import Type Library 선택하여 해당 DLL 의 UNIT 을 생성하였습니다.
calc : CSharpCalc;
....
calc := CoCSharpCalc.Create;
temp := Format('100+50=%d', [calc.Add(100,50)]);
ShowMessage(temp);
이렇게 해서 잘 수행 되었습니다.
그런데, 인터페이스로 선언한 곱셈과 나눗셈은 보이질 않습니다.
test: IAdvancedMath;
....
test.Multiple()
이렇게 하면 런타임 에러 납니다. 아마도 test 의 객체 생성이 이루어지지 않아서인거 같습니다.
처음이라 개념도 잘 서질 않네요..
조언 부탁 드립니다.