0
合作伙伴在C#中用.NET框架4創建了一個COM lib x.dll和x.tlb。他有「Com Interop 「複選框在VS中檢查。.NET Interop'Method not found:'Void System.Threading.Monitor.Enter ..
然後他提到這個Register a C#/VB.NET COM dll programmatically創建一個註冊.dll的工具。有效。 (我們的Delphi應用程序可以訪問.COM對象),他用來註冊的代碼(從上面的鏈接)是:
Assembly asm = Assembly.LoadFile (@"c:\temp\x.dll");
RegistrationServices regAsm = new RegistrationServices();
bool bResult = regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase);
我們進口x.tlb到德爾福7,創建一個.PAS文件,通過它我們正在調用COM庫。
在Delphi中,當我們在COM庫中調用一個函數,我們得到了一個錯誤:
...exception class EOleException with message 'Method not found: 'Void
System.Threading.Monitor.Enter(System.Object, Boolean ByRef)''. Process stopped.
我們不知道這意味着什麼或如何解決它。
有什麼建議嗎?
不知何故,它使用以前版本的.NET。有沒有設置目標平臺的地方? –
@LURD在編譯時,當您創建C#.dll時,您可以指定預期的.NET版本。 –
@ArnaudBouchez,是的,這就是我的意思。 –