2014-01-29 70 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)到副本我的電腦,當我運行你的程序它不會給出任何錯誤,但它沒有得到列表中的相機名稱,我應該提到,我沒有安裝任何額外的驅動程序,因爲當我連接相機他們自動安裝請幫助我有一個緊迫的期限, 再次感謝。請幫忙 –

相關問題