我們得到了一個由C#程序員編寫的,編譯成可用作COM對象的DLL。使用C#DLL作爲COM下的Delphi
我們諮詢這些開發人員以獲取函數名稱和語法,我們可以在註冊regasm後使用它。
這是好的,但我們有更多的問題來產生更快的開發(變化),有些東西是不可理解的或不工作的。
我們使用Delphi 6專業版,並使用C#Visual Studio 2008製作的程序集(我認爲)。
讓我們來看看他們:
1) 我不能使用C#代碼的類型庫(TLB),因爲我無法導入到德爾福。
其結果是:
"Hiba az OLE beállításjegyzék használata közben."
Translate ~ "Error occured on use OLE typelib/setting lib"
錯誤的可能來源:
一個)的Delphi 6不能導入新的COM DLL-S。
b。)我們必須強制C#生成一個更老的格式化的TLB。
我們試圖用regasm重新生成TLB,但我們也得到了這個錯誤。
這可能是不可能的,但如果情況b。)發生,我們需要對C#開發人員說 - 如何編譯DLL-s? (DLL-s不能由Delphi引入,因爲它們沒有自啓動部分)。
2.) 有趣: 所有參數正確地轉換成變體VICA亦然,但如果C#方法不具有參數,我在Delphi側得到錯誤... 例如(僞):
proc A():bool;
調用A會在Delphi端產生錯誤。
proc A(Dummy: bool):bool;
調用A(False)工作正常。
我不知道,爲什麼我們得到了這個。 你對此有何評論?這是一個C#編譯問題?
感謝您的幫助: DD
我很困惑你的問題的一些部分。你說這個C#dll有一個COM接口是可用的,但是你沒有把它導入到delphi 6中。我不熟悉delphi,但我假設你沒有導入它,你甚至不能編譯代碼使用它。你可以嘗試導入dll而不是tlb嗎? – 2011-03-30 23:10:57