我正在使用Windows桌面的AIR本機擴展(ANE)。這個擴展的意義在於能夠調用第三方C庫,該庫包含兩個定義方法簽名/ typedefs的.h文件和一個.lib文件。在AIR本機擴展中包含庫會導致錯誤「擴展上下文沒有名稱的方法」,適用於所有方法
在將第三方庫包含到項目中之前,我首先確認了通過在只創建並返回字符串的dll中使用簡單的「sayHello」函數構建ANE,從而正確設置了所有內容。
驗證了我可以從我的AIR應用程序調用sayHello並獲得響應後,我開始添加一個初始化第三方庫的函數。這是事情橫向的地方。我的DLL編譯就好了,我能打包ANE沒有錯誤,但是當我嘗試調用從AIR任何ANE功能,我得到以下錯誤:
「The extension context does not have a method with the name
......」
在AIR中,對createExtensionContext()
的調用成功並返回一個ExtensionContext對象,但我無法調用任何本機函數。更重要的是,Visual Studio的調試器不再爲我的dll加載符號 - 該DLL不會出現在模塊窗口中,我也不能在本機代碼中設置斷點。
如果我註釋掉我稱之爲第三方庫的初始化函數的行,那麼再次正常工作 - 我可以調用我所有的函數並在Visual Studio中創建斷點。
所以基本上,如果我編譯這個庫到我的DLL,然後AIR將無法加載它。什麼會造成這種情況?