我有一个C#DLL,用作我的Java代码的包装器(我使用 IKVM 从Java代码生成DLL)。现在我想调用使用Delphi 7中的Java代码方法的C#DLL方法。
以下是C#函数的代码:
[DllExport]
public static void GetAnswer()
{
//this is IKVM's ArrayList. Without this line the function call works fine
ArrayList l = new ArrayList();
}
我在Delphi中注册我的函数:
function GetAnswer() : Pointer; stdcall; external 'MyDllName.dll'
当调用GetAnswer()时,我得到一个Delphi异常:外部异常E0434352 如果在DLL函数中没有创建ArrayList,GetAnswer()就会成功完成。 我在位于MyDllName.dll所在的同一文件夹中的PATH env变量中有我的ikvm DLL。
我认为它与IKVM DLL可能不兼容COM的事实有关,但我不是这里的专家。所以问题是:我是否可以做我想做的事情,如果是的话,我应该采取什么步骤?
任何指针都非常感谢!
修改 正如大卫所建议的那样,提及的COM可能与此无关。