守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 1150|回复: 0

[Windows] 编写windows版ANE

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51717
    钢镚
    1422

    开源英雄守望者

    发表于 2015-1-19 09:50:47 | 显示全部楼层 |阅读模式
    1.编写WinANE.dll:


    1. #include <windows.h>

    2. #include <stdlib.h>

    3. #include <FlashRuntimeExtensions.h>

    4. #pragma comment( lib, "FlashRuntimeExtensions.lib" )

    5. FREObject test(FREContext ctx, void*funcData, uint32_t argc, FREObject argv[])
    6. {

    7.   const uint8_t* msg = (const uint8_t*)"hello world";

    8.   FREObject retObj;

    9.   FRENewObjectFromUTF8(strlen((const char*)msg)+1, msg, &retObj);

    10.   return retObj;

    11. }

    12. void ContextFinalizer(FREContext ctx)

    13. {
    14.   return;
    15. }

    16. void ContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx,

    17.             uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet)

    18. {

    19.   *numFunctionsToTest= 1;

    20.   FRENamedFunction* func = (FRENamedFunction*)malloc(sizeof(FRENamedFunction)*1);

    21.   func[0].name= (const uint8_t*)"test";

    22.   func[0].functionData= NULL;

    23.   func[0].function= &test;

    24.   *functionsToSet= func;

    25. }

    26. extern "C" __declspec(dllexport) void ExtFinalizer(void* extData)
    27. {
    28.   return;
    29. }

    30. extern "C" __declspec(dllexport) void ExtInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet,

    31.                           FREContextFinalizer*ctxFinalizerToSet)

    32. {

    33.   *extDataToSet= NULL;

    34.   *ctxInitializerToSet= ContextInitializer;

    35.   *ctxFinalizerToSet= ContextFinalizer;

    36. }
    复制代码
    2.编写 swc库:
    1. package
    2. {
    3.   import flash.events.EventDispatcher;
    4.   import flash.external.ExtensionContext;

    5.   public class TestWinANE
    6.   {
    7.     private static var context:ExtensionContext;
    8.     public function TestWinANE()
    9.     {
    10.       try
    11.       {
    12.         context= ExtensionContext.createExtensionContext("WinANE", "");
    13.       }
    14.       catch(e:Error)
    15.       {

    16.       }

    17.     }

    18.     public function print():String
    19.     {
    20.       var str:String = context.call("test") as String;
    21.       return str;
    22.     }
    23.   }
    24. }
    复制代码
    使用如下命令编译:

    1. acompc -compiler.debug=false -library-path+=D:/FlexSDK4.9.1 -external-library-path+=D:/FlexSDK4.9.1/frameworks/libs/framework.swc

    2. -swf-version=20 -compiler.source-path ./ -include-sources ./ -output WinANE.swc
    复制代码
    3.编写extension.xml:
    1. <extension xmlns="http://ns.adobe.com/air/extension/3.7">
    2.   <id>WinANE</id>
    3.   <versionNumber>1.0.0</versionNumber>
    4.   <platforms>
    5.     <platform name="Windows-x86">
    6.     <applicationDeployment>
    7.       <nativeLibrary>WinANE.dll</nativeLibrary>
    8.       <initializer>ExtInitializer</initializer>
    9.       <finalizer>ExtFinalizer</finalizer>
    10.       </applicationDeployment>
    11.     </platform>
    12.   </platforms>
    13. </extension>
    复制代码

    4.生成 WinANE.ane:

    解压WinANE.swc,将library.swf与WinANE.swc和WinANE.dll,extension.xml放同一目录,执行如下命令:

    1. adt.bat -package -target ane WinANE.ane extension.xml -swc WinANE.swc -platform Windows-x86 library.swf WinANE.dll
    复制代码
    5.修改使用ANE的应用程序的XML文件,添加如下段:

    1. <supportedProfiles>extendedDesktop</supportedProfiles>

    2. <extensions>
    3.   <extensionID>WinANE</extensionID>
    4. </extensions>
    复制代码


    本文来自:http://www.cnblogs.com/LinuxHunter/p/3417586.html


    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-9-15 14:19 , Processed in 0.046518 second(s), 37 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表