<b>EXE到SWF文件的转换代码</b>[VC/C++编程]
本文“<b>EXE到SWF文件的转换代码</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
//-------------------------------------------------------------
/* Exe 格局 到 SWF 各式转换程序
支持Flash6格局
源码很简单看懂!
有问题来信live_on@sohu.com 狭路相逢
这个函数是我的Live Flash 播放器的一部份
*/
#include <vcl.h>
#pragma hdrstop
#include "exef.h"
//-------------------------------------------------------------
#pragma package(smart_init)
AnsiString exe2swf(AnsiString FileName) //函数名
{
int iFileHandle;
unsigned long iFileLength;
unsigned long iBytesRead;
AnsiString dFileName;
unsigned char *pszBuffer;
//unsigned char *Buffer;
iFileHandle = FileOpen(FileName.c_str(), fmOpenRead);//翻开文件
iFileLength = FileSeek(iFileHandle,0,2);//肯定长度
FileSeek(iFileHandle,0,0);
pszBuffer = new char[iFileLength+1]; //读入源文件
if (pszBuffer==NULL)
{
return(NULL);
}
iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
FileClose(iFileHandle);//关闭
//dFileName=
dFileName=FileName.UpperCase ().SubString (1,FileName.Length () - 4)+".SWF" ;//生成目标文件名
// if (FileExists(dFileName)) //肯定能否存在
// return (NULL);
//printf("%d \n",iBytesRead);
int i=0;
int ii=0;
for (i=0 ;i<iFileLength-2;i++) //匹配辨认字符 FWS
{
//pszBuffer++;
if ((pszBuffer[i-2]==0)&&(pszBuffer[i-1]==0)&&(pszBuffer[i]=='F')&&(pszBuffer[i+1]=='W')&&(pszBuffer[i+2]=='S'))
{
ii=i;
}
}
i=ii;
pszBuffer=pszBuffer+i;
iFileHandle = FileCreate(dFileName.c_str() );
if (i!=376831&&i!=286719&&i!=811008) //能否为 4.5.6版本
{
if(!Application->MessageBoxA("文件格局非常!强迫播放?","告诫",IDOK))
return (NULL);
}
FileWrite(iFileHandle, pszBuffer,iFileLength-i );
FileClose(iFileHandle);
delete [] pszBuffer;
return(dFileName);
}
以上是“<b>EXE到SWF文件的转换代码</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |