Delphi 6 可以呼叫 vb.net 開發的DLL 嗎? |
缺席
|
esp_pzj
初階會員 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
dll 是 windows 早期規劃的一個動態連結函式庫,所有在windows上要開發成dll的都要遵循這一制定的規則,所以原則上是可以引用的,但必須在Delphi中另外宣告如下類似(以下是Delphi5, 6版本沒有過不清楚如何宣告),經宣告後就可以在Delphi專案中引用
function Zero_Calibration(my_EQ_Type: Integer): Integer; cdecl; external 'nMOT_MEXA_DLL.dll' name 'prg_Zero_Calibration'; nMOT_MEXA_DLL.dll 是VB 寫出來的 DLL name 'prg_Zero_Calibration' 是引用 VB中的FUNCTION NAME 在Delphi 專案中即可引用Zero_Calibration() |
shunchia63
高階會員 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
|
esp_pzj
初階會員 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
我咧! 你怎麼會直接引用我的function name 'prg_Zero_Calibration 呢? 難道你的function name 正麼巧完全同名?
===================引 用 esp_pzj 文 章=================== P.D.版主 ?????使用您的方法出現下列訊息: ??? 「無法找到程序輸入點prg_Zero_Calibration(在動態連結程式庫Project2.dll)」 ???? 請問這是什麼問題? 是vb開發的dll的問題嗎? ???????????? ???????????????????????????????????????????????????? 謝謝 ???? |
esp_pzj
初階會員 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
<textarea class="vb" rows="10" cols="60" name="code">Public Class CheckUser
'USNSystem.dll
'產生單號
Dim ClassNo, ClassNum As Integer
Public var1 As Integer
Public Shared Function CheckUser(ByVal a As Int32) As Int32
Dim i As Int32
Dim x As Int32
For i = 1 To a
x = x i
Next
Return x
End Function
Public Shared Function CheckUserd(ByVal a As Int32) As Int32
Dim i As Int32
Dim x As Int32
For i = 1 To a
x = x i
Next
Return x
End Function
Function LoadDetail(ByVal no As Integer)
Dim i As Int32
Return i
End Function
Sub Save()
Data_Save()
End Sub
Private Sub Data_Save()
End Sub
End Class
</textarea><br />
我直接吧 vb 貼上來 請問我如何引用 CheckUser 謝謝
------
學藝不精 謝多多指教 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
function myDelphifunction(myVar: Integer): Integer; cdecl; external 'USNSystem.dll' name 'CheckUser';
紅色請自定一個Delphi function name 粉色 為 Delphi 接收 vb 中的你指定function 的變數,有多組的話要與 VB 對應 綠色 為 VB 的 DLL NAME, 請注意大小寫要完全一致 藍色 為 VB 實際引用的 FUNCTION NAME, 請注意要大小寫一致 紫色,有幾種用法不同,請自行查HELP,基本上引用這種模式大多可以通行 橙色,為在Delphi中要回傳的型態, 要與 vb 對應 抱歉,我沒學過 vb,所以看不懂 vb code 宣告,不過我有一個疑問,因為我看你的vb code , 其實function 內的設計是很單純,並不是使用到十分複雜或使用vb特有一些工具開發,與其這樣引用,既然要使用Delphi開發,何不利用Delphi自己寫同樣的function 功能直接使用就好了,何必要大費周章繞一圈來引用,因為一般會引用C或VB的DLL,都是要補足Delphi在自動控制支援不足或有些Delphi實際做不上來或前輩留下來十分複雜的function等等狀況才會去引用。 |
shunchia63
高階會員 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
感謝 shunchia63 兄的提示,因為我並未使用過 .net,不清楚 .net 所產生出來的 dll 是否符合 win32 架構,以上是就標準win32平台上的 dll 模式來討論,如果有論述不正確的地方,還請多多見諒!
|
esp_pzj
初階會員 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
感謝P.D 及 shunchia63 兄的建議:
目前還沒測試出來,我先請我的朋友 開發 win32 的 DLL。 P.D : 因為我的朋友是學 .NET 我想跟我朋友一起開發系統,所以先用 簡單的 vb code 的 DLL 來測試可只可行,再進一步的開發系統。 目前正在多方面測試中…… ===================引 用 P.D. 文 章=================== function myDelphifunction(myVar: Integer): Integer; cdecl; external 'USNSystem.dll' name 'CheckUser'; 紅色請自定一個Delphi function name 粉色 為 Delphi 接收 vb 中的你指定function 的變數,有多組的話要與 VB 對應 綠色 為 VB 的 DLL NAME, 請注意大小寫要完全一致 藍色 為 VB 實際引用的 FUNCTION NAME, 請注意要大小寫一致 紫色,有幾種用法不同,請自行查HELP,基本上引用這種模式大多可以通行 橙色,為在Delphi中要回傳的型態, 要與 vb 對應 抱歉,我沒學過 vb,所以看不懂 vb code 宣告,不過我有一個疑問,因為我看你的vb code , 其實function 內的設計是很單純,並不是使用到十分複雜或使用vb特有一些工具開發,與其這樣引用,既然要使用Delphi開發,何不利用Delphi自己寫同樣的function 功能直接使用就好了,何必要大費周章繞一圈來引用,因為一般會引用C或VB的DLL,都是要補足Delphi在自動控制支援不足或有些Delphi實際做不上來或前輩留下來十分複雜的function等等狀況才會去引用。
------
學藝不精 謝多多指教 |
Icekid
一般會員 發表:0 回覆:1 積分:0 註冊:2008-06-25 發送簡訊給我 |
題目改一下 : 請問BCB也可以呼叫vb.net 開發的DLL 嗎?
是否可以請高手大大說一下步驟 , 英文太差看不太懂....>< ===================引 用 shunchia63 文 章=================== 如標題 主題:Delphi 6 可以呼叫 vb.net 開發的DLL 嗎? vb.net 開發的DLL 應該為ClassLibrary 非Win32 DLL 答案應該不可以直接呼叫 需額外處理 參考上面Win32 <--> .NET 或用.NET寫一支COM 封裝 ClassLibrary 給Win32 AP使用 若 vb. 開發的DLL 嗎? DLL 可能很多種如:ActiveX可能要使用 CreateOleObject 另一種如樓上所述
------
嫩是新手的名 |
HikaruGo
中階會員 發表:22 回覆:69 積分:88 註冊:2007-12-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |