如何連上COM+元件? |
尚未結案
|
bnlonq1022
一般會員 發表:6 回覆:17 積分:4 註冊:2003-07-17 發送簡訊給我 |
|
OsX
版主 發表:6 回覆:151 積分:111 註冊:2003-05-03 發送簡訊給我 |
|
bnlonq1022
一般會員 發表:6 回覆:17 積分:4 註冊:2003-07-17 發送簡訊給我 |
|
OsX
版主 發表:6 回覆:151 積分:111 註冊:2003-05-03 發送簡訊給我 |
|
bnlonq1022
一般會員 發表:6 回覆:17 積分:4 註冊:2003-07-17 發送簡訊給我 |
|
geliswu
一般會員 發表:28 回覆:15 積分:13 註冊:2004-10-06 發送簡訊給我 |
Dear bnlonq1022 對了,你說是用Delphi 2005寫的COM 元件
哪你是用ActiveX Library-->AutomationObject(COM Object) 純Win32方式開發COM 元件還是使用.NET方式開發COM 元件呢
因為你知道Delphi 2005 將Win32部分拆為另一套產品稱做Delphi 2005 for Microsoft Win32 Delphi 2005一樣可以使用.NET方式開發COM 元件。
還有你要連結COM 元件的Client端是使用Win32方式開發的還是.NET,如果是Win32的話做法與以前相同,使用Import ActiveX (使用建立TLB Type Library方式) 將Type Library的.pas檔案引用進來使用即可 如果是.NET方式開發,則操作方式與VS.NET 2003/2003相同,使用Reference方式,.NET的InterOp Service會自動將COM的物件的Type Library編譯成RCW的介面檔並參考進來就可以直接使用 **********************************
Gelis
http://home.gigigaga.com/wergelis/
**********************************
|
bnlonq1022
一般會員 發表:6 回覆:17 積分:4 註冊:2003-07-17 發送簡訊給我 |
|
geliswu
一般會員 發表:28 回覆:15 積分:13 註冊:2004-10-06 發送簡訊給我 |
對了
因為你是說要在.NET中連結COM 元件
所以以.NET來說直接Reference應該就是你要的答案
雖然COM本身的RPC協定也是Socket的一種 但是就我這從98年開發COM/DCOM的了解,DCOM本身的Library已經實作RPC層,並不允許你去自訂Socket,所以我就是不知道你說的要以Socket去連是說在WinForm的專案或是ASP.NET的專案當中找不到Delphi的DCOMConnection元件??還是?還請您說的更清楚一點 如果是.NET Remoting的話不但可以使用Socket也可以使用HTTP 提供意見給您,希望對你有幫助 **********************************
Gelis
http://home.gigigaga.com/wergelis/
**********************************
|
bnlonq1022
一般會員 發表:6 回覆:17 積分:4 註冊:2003-07-17 發送簡訊給我 |
不好意思,還煩請大大多多指教,因為小弟在.NET方面還是個新手,如果是Win方面的話,在舊版的Delphi,小弟知道如何運用COM 元件,只是在新版的Delphi2005就不熟了,因為主要是小弟想透過Delphi2005寫網頁,而且網頁裏可運用COM 元件做遠端資料庫的存取,只是原本小弟用ASP可以做到,只是換成Delphi2005寫網頁時,就不知該如何寫起了,因為原本的程式碼,透過Delphi2005寫ASP就會過不了!所以還煩請大大幫忙!如果可以的話,可否寫個簡易的範例,讓小弟了解呢?謝謝!
|
geliswu
一般會員 發表:28 回覆:15 積分:13 註冊:2004-10-06 發送簡訊給我 |
Hi 這是我寫的一個使用Delphi 2005寫的ASP.NET程式去呼叫Delphi.NET的技術所開發的COM+元件(ComPackage1)。我Reference之後直接呼叫的 ASP.NET的Page的Source Code如下:
unit WebForm1; interface uses System.Collections, System.ComponentModel, System.Data, System.Drawing, System.Web, System.Web.SessionState, System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls, ComPackage1; type TWebForm1 = class(System.Web.UI.Page) {$REGION 'Designer Managed Code'} strict private procedure InitializeComponent; procedure Button1_Click1(sender: System.Object; e: System.EventArgs); {$ENDREGION} strict private procedure Page_Load(sender: System.Object; e: System.EventArgs); strict protected Button1: System.Web.UI.WebControls.Button; DataGrid1: System.Web.UI.WebControls.DataGrid; Literal1: System.Web.UI.WebControls.Literal; procedure OnInit(e: EventArgs); override; private { Private Declarations } public { Public Declarations } end; implementation {$REGION 'Designer Managed Code'} /// |
bnlonq1022
一般會員 發表:6 回覆:17 積分:4 註冊:2003-07-17 發送簡訊給我 |
|
geliswu
一般會員 發表:28 回覆:15 積分:13 註冊:2004-10-06 發送簡訊給我 |
|
geliswu
一般會員 發表:28 回覆:15 積分:13 註冊:2004-10-06 發送簡訊給我 |
|
bnlonq1022
一般會員 發表:6 回覆:17 積分:4 註冊:2003-07-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |