![](/img/trans.png)
[英]Why would I rather use a native dll or com server to call Delphi code from C#?
[英]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.