2014-01-29 35 views
1

我试图通过C#的介质在macOS 10.9.1上使用EDSDK。EDSDK的“EdsInitializeSDK()”永远不会返回,在OSX上使用C#/ mono

我使用Xamarin和我没有得到任何DllNotFoundException的,因此推测它找到的框架。我也没有得到一个EntryPointNotFoundException,所以这不是问题。

当我尝试并调用EdsInitializeSDK()它根本不会返回,就好像它是一个无限循环或类似的东西。

如果我调用其他功能,因为该SDK将不会被初始化他们返回没有IDE标记的任何问题,这显然是返回一个错误代码。

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

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

回答

1

拿到SDK用C#在Mac上运行,你应该:

  • 复制EDSDK.framework和DPP.framework到您的内置*的.app文件夹中的“目录/框架/”(您可能需要创建该文件夹)
  • 一个App.config文件添加到您的项目有以下内容:

    <?xml versin="1.0"?> 
    <configuration> 
        <dllmap dll="EDSDK" target="@executable_path/../Frameworks/EDSDK.framework /EDSDK" /> 
    </configuration> 
    
  • 在你做的P中的包装类/调用你需要改变

    [DllImport("EDSDK.dll")] 
    

    [DllImport("EDSDK")] 
    

    (使用dllmap与DLL = “EDSDK.dll” 可悲的是不工作,你就必须坚持 “EDSDK” 或.dll文件没有任何其他名称)

如果您按照这些步骤你的程序完全正常工作。

亲切的问候

+0

感谢您对佳能SDK TUTS努力,并与他人分享它,我下载了从CodeProject你的代码,并得到了大炮的dll文件,以及我与我的相机(反叛T3)到副本我的电脑,当我运行你的程序它不会给出任何错误,但它没有得到列表中的相机名称,我应该提到,我没有安装任何额外的驱动程序,因为当我连接相机他们自动安装请帮助我有一个紧迫的期限, 再次感谢。请帮忙 –

相关问题