flex、bison代码在visual studio 编译
在cygwin下自己写了个汇编器,使用flex和bison分别做词法和和语法分析。在cygwin下可以运行,但是汇编器要作为整个功能的一部分,就不得不把它封装起来,给外部提供接口。下边大概讲一下移植的过程及遇到的问题。
在vc下新建win32控制台应用程序,如果你的bison源代码中包含main函数建一个空工程就行了;
要在Windows下对flex和bison源码(assembler.l和assembler.y)进行重新编译,生成文件assembler_tab.h,assembler_tab.c,lex.yy.c。这里文件名与cygwin下有所区别,cygwin下生成的文件名是assembler.tab.c、assembler.tab.h、lex.yy.c,assembler是我自己起的名字;
把assembler_tab.h,assembler_tab.c,lex.yy.c三个文件添加到工程,编译。出现错误信息,提示“eh.h”文件只适用于c++,考虑vc对后缀为.c的文件默认使用c编译器,代码使用了c++的内容就会报错。找了半天如何强制设置编译器类型的方法都没找到,索性用最简单的方法,把.c后缀改为.cpp。
再编译,出错,提示Cannot open include file: 'unistd.h'文件,查了一下该文件是linux下的,相当于Windows下的stdlib.h,那么Windows下应该没用,所以直接注释掉,编译通过。
然后在命令行下运行,一切ok
相关文档:
原文地址:
http://www.gridlinked.info/how-to-encrypt-flex-rsls/
这里截取并尝试翻译了一段FLEX程序初始化及此解密过程.
应用启动过程:
1. 首先, 为第1帧加载足够的数据.
2. Flash Player通过创建SystemManager实例执行加载数据.
3. SystemManager命令Flash Player停止在第一帧.
4. SystemManager创建Preloader,
......
Flex 4 DropDownList:
<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate the Spark DropDownList control -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/ ......
1-首先写一个加载外部swf文件的类
package Package
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.events.*;
import flash.net.URLRequest;
import mx.core.UIComponent;
import mx.events.FlexEvent;
public class CtmOb ......
Getting Around Bug in Adobe Flex: TabControl Inline Event Handling for TabIndexChange Doesn't Work
I ran into this because I wanted to do something funky. I wanted my Flex app window to change PageStates (and size) whenever the TabIndex changed. Whether doing this kind of thing is wise ......
绑定:
举个例子: 给下面的public变量加上[Bindable]
[Bindable]
public var name:String = "";
作为一个public变量,肯定既可以被赋值,也能赋值给别的变量。绑定的作用就是,当name改变的时候(被赋值了),可能通知其它被name影响(赋值给它们)的变量发生改变。这里的“可能” ......