簡體   English   中英

在Delphi下使用C#DLL作為COM

[英]Use C# DLL as COM under Delphi

我們得到了由C#程序員編寫的DLL,並將其編譯為可用作COM對象。

我們咨詢這些開發人員以獲取函數名稱和語法,並且在將其注冊為regasm之后可以使用它。

可以,但是我們還有更多問題要進行快速的開發(根據更改),並且有些事情是無法理解或無法正常工作的。

我們使用了Delphi 6 Professional,並使用了C#Visual Studio 2008進行組裝(我認為)。

讓我們看看他們:

1.)我無法使用C#代碼的typelib(TLB),因為無法導入Delphi。

結果是:

"Hiba az OLE beállításjegyzék használata közben."

Translate ~ "Error occured on use OLE typelib/setting lib"

錯誤的可能來源:

a。)Delphi 6無法導入新的COM dll-s。

b。)我們必須強制C#生成較舊格式的TLB。

我們嘗試重新生成帶有再生氣的TLB,但同時也出現此錯誤。

可能這是不可能的,但是如果情況b。)發生了,我們需要對C#開發人員說什么-如何編譯DLL-s?

(Delphi無法導入DLL-s,因為它們沒有self init節)。

2.)有趣的是:所有參數都正確地轉換為vica-versa變體,但是,如果C#方法沒有參數,則在Delphi端出現錯誤...例如(偽):

proc A():bool;

調用A在Delphi端生成錯誤。

proc A(Dummy: bool):bool;

調用A(False)可以正常工作。

我不知道,為什么我們要這么做。 您對此有何看法? 這是C#編譯問題嗎?

感謝您的幫助:dd

最好的方法是獲得使用C#通過COM展示DLL成功使用的源代碼。 DLL的開發人員應該能夠提供。 DLL可能還必須先通過regasm注冊( 而不是 regsvr32.exe因為它將用於本機COM DLL),然后才能通過COM對其進行訪問。 與往常一樣,如果沒有更多實際的代碼,很難回答這些問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM