编写windows版ANE
1.编写WinANE.dll:
#include <windows.h>
#include <stdlib.h>
#include <FlashRuntimeExtensions.h>
#pragma comment( lib, "FlashRuntimeExtensions.lib" )
FREObject test(FREContext ctx, void*funcData, uint32_t argc, FREObject argv[])
{
const uint8_t* msg = (const uint8_t*)"hello world";
FREObject retObj;
FRENewObjectFromUTF8(strlen((const char*)msg)+1, msg, &retObj);
return retObj;
}
void ContextFinalizer(FREContext ctx)
{
return;
}
void ContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx,
uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet)
{
*numFunctionsToTest= 1;
FRENamedFunction* func = (FRENamedFunction*)malloc(sizeof(FRENamedFunction)*1);
func[0].name= (const uint8_t*)"test";
func[0].functionData= NULL;
func[0].function= &test;
*functionsToSet= func;
}
extern "C" __declspec(dllexport) void ExtFinalizer(void* extData)
{
return;
}
extern "C" __declspec(dllexport) void ExtInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet,
FREContextFinalizer*ctxFinalizerToSet)
{
*extDataToSet= NULL;
*ctxInitializerToSet= ContextInitializer;
*ctxFinalizerToSet= ContextFinalizer;
}
2.编写 swc库:
package
{
import flash.events.EventDispatcher;
import flash.external.ExtensionContext;
public class TestWinANE
{
private static var context:ExtensionContext;
public function TestWinANE()
{
try
{
context= ExtensionContext.createExtensionContext("WinANE", "");
}
catch(e:Error)
{
}
}
public function print():String
{
var str:String = context.call("test") as String;
return str;
}
}
}
使用如下命令编译:
acompc -compiler.debug=false -library-path+=D:/FlexSDK4.9.1 -external-library-path+=D:/FlexSDK4.9.1/frameworks/libs/framework.swc
-swf-version=20 -compiler.source-path ./ -include-sources ./ -output WinANE.swc
3.编写extension.xml:
<extension xmlns="http://ns.adobe.com/air/extension/3.7">
<id>WinANE</id>
<versionNumber>1.0.0</versionNumber>
<platforms>
<platform name="Windows-x86">
<applicationDeployment>
<nativeLibrary>WinANE.dll</nativeLibrary>
<initializer>ExtInitializer</initializer>
<finalizer>ExtFinalizer</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>
4.生成 WinANE.ane:
解压WinANE.swc,将library.swf与WinANE.swc和WinANE.dll,extension.xml放同一目录,执行如下命令:
adt.bat -package -target ane WinANE.ane extension.xml -swc WinANE.swc -platform Windows-x86 library.swf WinANE.dll
5.修改使用ANE的应用程序的XML文件,添加如下段:
<supportedProfiles>extendedDesktop</supportedProfiles>
<extensions>
<extensionID>WinANE</extensionID>
</extensions>
编写windows版ANE的更多相关文章
- 使用BSD socket编写Windows版的网络程序
我们知道BSD Socket是标准的套接字规范,那么怎么在windows使用他们呢? 我们首先要引用<winsock2.h>和ws2_32.lib 然后,执行WSAStartup #ifd ...
- 开发QQ互联ios版Ane扩张 辛酸史
来源:http://www.myexception.cn/operating-system/1451490.html 开发QQ互联ios版Ane扩展 辛酸史 开发QQ互联ios版Ane扩展辛酸史: 1 ...
- 如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目
如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目 #1:前提准备 1.1 首先请确认你的电脑是windows10专业版或企业版,只有这 ...
- Android Studio2.0 教程从入门到精通Windows版 - 入门篇
http://www.open-open.com/lib/view/open1468121363300.html 本文转自:深度开源(open-open.com)原文标题:Android Studio ...
- Zookeeper Windows版的服务安装和管理工具
以前研究过负载均衡,最近正在项目上实施(从来没做过小项目以上级别的东西,哈).然后遇到了多个一模一样但是同时运行的服务.不同服务但依赖同相同的配置数据(前端网页服务:Nginx+IIS+nodejs. ...
- Nginx Windows版的服务安装和管理工具
以前研究过负载均衡,最近正在项目上实施(从来没做过小项目以上级别的东西,哈),nginx挺好,不过Windows有点为难,小流量和本地不追求性能,简单易用是目标. Nginx Windows上并没有提 ...
- elasticsearch 2.4 windows版jvm内存设置
本文编写目的是因为网上有很多es修改内存配置的文章,方法也各有不同,但在我的情况下(es 2.4 windows版)发现很多方法都是无效的,有效只有以下方法 第一个是xms,第二个是xmx
- HUSTOJ的Windows版评判内核(限制内存使用)
HUSTOJ的Windows版评判内核(一) 作者:游蓝海 个人主页:http://blog.csdn.net/you_lan_hai 2013.4.9 注:最新版本项目地址:https://gith ...
- Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)
Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...
随机推荐
- php日期,时间相关知识整理
unix 时间戳:从1970年1月1日0点开始到当前时间所经过的秒数. 1.将日期转换为UNIX时间戳 mktime():可以自动校正越界的输入 原型 : mktime(hour,minute,sec ...
- PostgreSQL中数据库,表,等对象的oid与对象名的对应关系
-bash-4.1$ oid2name Password: All databases: Oid Database Name Tablespace--------------------------- ...
- ACM Coder [T1002] 一直wrong answer,不知道为什么。上代码!就对就对!
忘了改了什么,后来居然对了!做打不死的菜鸟! #include <stdio.h> #include <stdbool.h> #define arrayLength 20 #d ...
- 11.写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
//首先列出需要被操作的url $url_path = "http://www.sina.com.cn/abc/de/fg.php?id=1"; 方法一: ...
- 0512 Scrum 4.0
看板设计 每日例会时间定于下午放学回到宿舍,地点是在宿舍外的走廊或宿舍里,特殊情况待定: 团队开会照片 任务认领: 首页设计-------王俊杰 鸡汤版面-------列志华 论“汤”版面------ ...
- Windows消息机制概述
消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程 ...
- 摸索js的3d全景
先我在网上找到了一个例子,http://silali.vicp.net/three/emaple.html 完美实现3d全景,在详细查看这个例子后,发现他在手机上运行并不流畅,而且显不全并会卡顿. 我 ...
- js获取url参数值
用过的封装好的js获取url问号后的参数的方法: <script> var Request = new Object(); Request = GetRequest();var error ...
- CSS:opacity 的取值范围是 0~1
CSS:opacity 的取值范围是 0~1,难怪设置为 1~100 看不到效果.
- 如何在page_load方法判断是服务器端控件引发的page_load方法
动态获取单击的服务器端控件的id值 private string getPostBackControlName() { Control control=null; s ...