从Azure App Service上运行的Web API调用时,Delphi XE2 DLL崩溃

时间:2016-04-25 08:17:23

标签: c# delphi dll pinvoke azure-web-sites

我的C#Web API项目使用p / invoke调用本机Delphi DLL。

在将我的项目发布到Azure App Service Web应用程序之前,我的Windows 10开发计算机上的一切正常。

当从App Service调用DLL并尝试创建隐藏表单时,会发生访问冲突并且网站崩溃。 在下面的示例中,测试表单是一个空的Delphi VCL表单。

// Delphi XE2 DLL:
function TestFunc: Boolean; stdcall;
begin
  Result := OpenTestForm(nil);
end;

function OpenTestForm(aOwner: TComponent): Boolean;
begin
  frmTest := TfrmTest.Create(aOwner); // Access Violation here !!!
  try
    Result := True;
  finally
    frmTest.Free;
  end;
end;

// C# 
[DllImport("Test.dll", CallingConvention = CallingConvention.StdCall)]
public static extern bool TestFunc();

C#Web API项目:使用.NET Framework 4.5.1的.NET Core RC1(1.0.0-rc1-final)

Delphi XE2:32位DLL

在Windows 10(开发计算机)和Windows Server 2012 R2(Azure VM)上正常运行。 Azure App Service作为32位进程运行。

0 个答案:

没有答案