我有一個簡單的任務:如何在Delphi中使用.Net程序集而不註冊到GAC或COM中?
是有可能寫出一個Delphi DLL,並把.NET程序集(用4種方法和一個類實現該接口只有一個接口),除了它並從德爾福DLL調用它?
我的意思是,如果我爲tlb創建一個tlb和一個delphi單元,而無需註冊Assembly/tlb,我可以直接從.Net程序集(相對文件名)中導入.Net類型嗎?
最好, thalm
EDIT(我發現):
大多數解決方案必須至少註冊一個DLL/TLB的COM。但我發現,最有前途的事情是:Unmanaged Exports羅伯特捷,它的Visual Studio項目模板,它可以讓你寫靜態C#(或其他.NET語言)的方法,並從任何非託管的語言給他們打電話,真棒:
class Test
{
[DllExport("add", CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
return left + right;
}
}
編輯2: 它真的有用!你甚至可以控制類型編組,不可信!
不錯的破解發現+1。它幾乎立即有意義,一旦記住.Net標頭只是COFF格式的擴展。我有一個偉大的文章與.Net位置的細節,但現在找不到它。這可能是更好的(而不是更簡單的)方法:http://www.codeproject.com/KB/cs/unmanagedtomanaged.aspx – user44298 2011-01-10 15:58:22