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用,不过善于思考,勤于劳动的人会发现这个问题也是可以解决的。