C# C DllExport-无法使用大函数
我正在尝试将代码从C中的函数导出到Delphi。我将DllExport与stdcall约定一起使用,并进行了一些测试:它可以工作。我测试了整数和字符串作为参数。当我试图使用C语言中的一个RGE库中的类时,问题就出现了。Delphi返回一个错误:外部异常E0434F4DC# C DllExport-无法使用大函数,c#,delphi,dllexport,C#,Delphi,Dllexport,我正在尝试将代码从C中的函数导出到Delphi。我将DllExport与stdcall约定一起使用,并进行了一些测试:它可以工作。我测试了整数和字符串作为参数。当我试图使用C语言中的一个RGE库中的类时,问题就出现了。Delphi返回一个错误:外部异常E0434F4D public class ProcessClass { [DllExport(CallingConvention=CallingConvention.StdCall)] public static void Pro
public class ProcessClass
{
[DllExport(CallingConvention=CallingConvention.StdCall)]
public static void ProcessImage()
{
try
{
Erosion erosion = new Erosion();
}
catch (Exception Ex)
{
}
}
}
Delphi代码:
procedure ProcessImage; stdcall; external 'C:\Users\Reznicencu Bogdan\source\repos\OCR\OCR\bin\x86\Release\OCR.dll';
procedure TForm1.FormCreate(Sender: TObject);
begin
ProcessImage;
end;
这个错误发生在侵蚀。实际上,我从一个RGE库使用的每个函数都会产生一个错误。我使用Try/catch是因为我知道Delphi无法捕获非托管代码中的异常,但它仍然不起作用。
如何解决此错误
事件日志显示:首次机会例外为$767EDDC2。带有消息“外部异常E0434F4D”的异常类EExternalException。Process Project1.exe 9528问题似乎与一个大型DLL的位置有关。如果将它们和类库DLL与Delphi可执行文件放在同一目录中,则错误将消失
也许还有其他方法可以告诉Forge DLL的位置。我将把它作为一个练习留给读者去研究。例外情况是什么?很难说。我们看不到您的Delphi代码。也许这是错误的。为什么要进行下一票?这样你就可以完全减少这一点,删除所有参数,删除所有注释掉的代码,只需要一个函数,其中有一行侵蚀=新侵蚀;我无法提供有关该异常的更多数据。我不知道;我不认为德尔福能应付得了。错误不是源于我在导出的未管理函数中使用了一个RGE吗?dll不是静态添加到最终dll吗?不是。它起作用了。是的,我对dll使用了不同的路径。我还在用C++思考。我认为其他DLL是静态链接的