程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> EXE到SWF文件的轉換代碼

EXE到SWF文件的轉換代碼

編輯:關於C++

//-------------------------------------------------------------

/* 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);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved