EXE到SWF文件的转换代码
当前位置:以往代写 > C/C++ 教程 >EXE到SWF文件的转换代码
2019-06-13

EXE到SWF文件的转换代码

EXE到SWF文件的转换代码

//————————————————————-

/* Exe 名目 到 SWF 各式转换措施

支持Flash6名目

源码很容易看懂!

有问题来信[email protected] 狭路相逢

这个函数是我的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);
}

    关键字:

在线提交作业