Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[10210] [질문]VCLForm 으로 만든 dll을 C# 에서 호출할수 있는지요..
미루 [] 1994 읽음    2005-08-31 09:13
안녕하십니까..

저번에 나현호 선생님이 보여주신 VCLForm 으로  스마트클라이 언트
하는것을 보고 VCLForm 으로 만든것을 C#에서 만든 스마트클라이 언트에서
호출이 될수 있을까 하고 해 보았습니다.

그런대 ERROR 가 나서요..

DELPHI2005 에 코딩된 부분 입니다.
---------------------------------------------------------------------
unit USubject01;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,

  System.ComponentModel, Borland.Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    constructor Create();
  end;

var
  Form1: TForm1;

implementation

{$R *.nfm}


constructor TForm1.Create;
begin
  inherited Create(nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  Form1 := nil;
end;

end.
---------------------------------------------------------------------


C#에서 호출 하는 부분은
---------------------------------------------------------------------
private void button1_Click(object sender, System.EventArgs e)
{
        Assembly app = Assembly.LoadFrom("http://localhost/Subject01.dll");
        Type frmType = app.GetType(string.Format("USubject01.TForm1"));
        if(frmType != null)
        {
                object frmObj = Activator.CreateInstance(frmType);
                Form frmMain = frmObj as Form;
                frmMain.Show();
        }
        else
        {
                MessageBox.Show("선택된 폼이 존재하지 않음");
        }              
}
---------------------------------------------------------------------
ERROR 난는 부분은 object frmObj = Activator.CreateInstance(frmType);
부분 입니다..
참고로 C#프로젝트에 참조에 Borland.delphi, Borland.vcl, Borland.vclrtl 을 추가 하였습니다.

--ERROR 내용 입니다.--
처리되지 않은 'System.Reflection.TargetInvocationException' 형식의 예외가 mscorlib.dll에서 발생했습니다.
추가 정보: 호출 대상이 예외를 Throw했습니다.

고수님의 고움을 부탁드립니다.

+ -

관련 글 리스트
10210 [질문]VCLForm 으로 만든 dll을 C# 에서 호출할수 있는지요.. 미루 1994 2005/08/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.