现在的位置: 首页 > 综合 > 正文

[MFC.C++] 将FLASH的SWF文件转化为EXE: SWF2EXE

2014年02月19日 ⁄ 综合 ⁄ 共 1126字 ⁄ 字号 评论关闭
  
void CSWFDlg::OnOK() 
{
	swf2exe("C:\\tmp\\Clock.swf","C:\\tmp\\Soong.exe","C:\\tmp\\Player.exe");
}

void CSWFDlg::swf2exe(CString swffile, CString exefile, CString playerfile)
{
	CFile SourceStream( swffile,CFile::modeRead );
    CFile DestinyStream( exefile,CFile::modeCreate | CFile::modeWrite );
    CFile LinkStream( playerfile,CFile::modeRead );

	DWORD playerLen=LinkStream.GetLength();

    char* buf=new char[playerLen];

    LinkStream.Read(buf,playerLen);
    DestinyStream.Write(buf,playerLen);
    LinkStream.Close();
    
    delete buf;
    buf = new char[SourceStream.GetLength()];
    SourceStream.Read(buf,SourceStream.GetLength());
    DestinyStream.Write(buf,SourceStream.GetLength());

    int flag = 0xFA123456;
    DestinyStream.Write(&flag, sizeof(flag));
    
	DWORD len=SourceStream.GetLength();
	DestinyStream.Write(&len ,sizeof(DWORD));

    SourceStream.Close();
    DestinyStream.Close();
}

 

 RT:

CODE:经过测试,同样适用于最新的Flash Player 11.7

DWORD是32bit的,不用担心32bit的整形不能添加大的falsh文件。(0xFFFFFFFF)/1024/1024/1024=4G。因此最大可以设置一个4G的flash文件。

 

        我知道很多人对这个功能不屑,但是最新的FP已经没有生成exe的功能了,这个是个补充;同时我们看到FLASH CC已经不支持发布WIN PROJECT了。

 

        更多的人关心如何把这个加壳的EXE作为另一个主程序的UI呢?网络上有很多方法,不再赘述了?
 

       可能一些人说光做个UI有个P用,又不能和主exe通信,是啊,这确实有个P用,不过善于思考,勤于劳动的人会发现这个问题也是可以解决的。

抱歉!评论已关闭.