找不到.NET Interop'方法:'Void System.Threading.Monitor.Enter ..

时间:2014-02-05 22:31:31

标签: .net delphi interop

合作伙伴使用.NET框架4在C#中创建了一个COM lib x.dll和x.tlb。他在VS中选中了“Com Interop”复选框。

然后他引用了这个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导入Delphi 7,创建了一个.pas文件,我们通过它调用COM库。

在Delphi中,当我们在COM库中调用一个函数时,我们收到一个错误:

...exception class EOleException with message 'Method not found: 'Void
 System.Threading.Monitor.Enter(System.Object, Boolean ByRef)''. Process stopped. 

我们不知道这意味着什么或如何解决它。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在编译C#dll时,它的目标是在框架4之前的.NET版本。

确保编译器中的设置定位到正确的平台版本。