Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C DllExport-无法使用大函数_C#_Delphi_Dllexport - Fatal编程技术网

C# C DllExport-无法使用大函数

C# 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

我正在尝试将代码从C中的函数导出到Delphi。我将DllExport与stdcall约定一起使用,并进行了一些测试:它可以工作。我测试了整数和字符串作为参数。当我试图使用C语言中的一个RGE库中的类时,问题就出现了。Delphi返回一个错误:外部异常E0434F4D

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是静态链接的