1

我正在尝试通过 C# 媒介在 macOS 10.9.1 上使用 EDSDK。

我正在使用 Xamarin,但我没有得到 DllNotFoundException,所以大概它正在寻找框架。我也没有收到 EntryPointNotFoundException,所以这不是问题。

当我尝试调用 EdsInitializeSDK() 时,它永远不会返回,就好像它处于无限循环或类似情况一样。

如果我调用其他明显返回错误代码的函数,因为 SDK 未初始化,它们会返回而 IDE 不会标记任何问题。

有谁知道为什么会发生这种情况?

此外,示例(目标 C)程序成功运行。

4

1 回答 1

1

要让 SDK 在 Mac 上使用 C# 运行,您应该:

  • 将 EDSDK.framework 和 DPP.framework 复制到您构建的 *.app 文件夹“Contents/Frameworks/”中(您可能需要创建此文件夹)
  • 将具有以下内容的 App.config 文件添加到您的项目中:

    <?xml versin="1.0"?>
    <configuration>
        <dllmap dll="EDSDK" target="@executable_path/../Frameworks/EDSDK.framework /EDSDK" />
    </configuration>
    
  • 在执行 P/Invoke 的包装类中,您需要更改

    [DllImport("EDSDK.dll")]
    

    [DllImport("EDSDK")]
    

    (遗憾的是,使用带有 dll="EDSDK.dll" 的 dllmap 不起作用,您必须坚持使用“EDSDK”或任何其他没有 .dll 的名称)

如果您按照这些步骤操作,您的程序将完美运行。

亲切的问候

于 2014-04-14T14:06:28.120 回答