如何将Flash文件做为资源保存在.res中啊?

解决方案 »

  1.   

    我使用的是 VS2008,首先新建一个工程,然后打开“资源视图”,在根节点处点击右键,选择“添加”->“资源”->“导入”,修改过滤规则(选择“*.*”),选则你的flash文件并“打开”,在“资源类型”中随意填写一个,例如:MY_FLASH_DATA,再点击“确定”就OK了。接下来就可以在“资源视图”中看到了,是以二进制方式打开的。
      

  2.   

    用自定义资源加入就行了,通过FindReourse, LoadResource, LockResource加载资源。LockResource返回的资源在内存中的指针可以直接用于将资源数据(这里也就是您的数据文件数据)写入磁盘文件。
      

  3.   

    如果希望在程序中使用该资源,
    如下方法://查找资源
    //IDR_XXXXXX就是你刚才导入的flash文件的ID,在resource.h中找。 
    HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_XXXXXX), TEXT("MY_FLASH_DATA")); //获取资源大小 
    DWORD dwSize = SizeofResource(NULL, hRsrc); 
     
    //加载资源 
    HGLOBAL hGL = LoadResource(NULL, hRsrc); //锁定资源 
    LPVOID lp = LockResource(hGL); 之后就可以使用了,过年大扫除,先这样吧…………
      

  4.   

    直接添加 进去就行了 ,请问你要怎么使用 flash资源啊?
      

  5.   

    1.工程区的 resource树中,鼠标右键->import,
    2.选择 *.swf文件;3.Resource type 里输入 "SWF",包括双引号;4.swf被以二进制方式导入资源中;5. CMyDlg::OnInit() 里加入如下代码:  CString Type="swf";
      HRSRC res=FindResource (NULL,MAKEINTRESOURCE(IDR_SWF1),Type);
      HGLOBAL gl=LoadResource (NULL,res); 
      //返回指向资源内存的地址的指针
      LPVOID lp=LockResource(gl);
      //保存的临时文件名
      CString filename="search.swf";
     
      HANDLE fp= CreateFile(filename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
      DWORD a;
      //sizeofResource 得到资源文件的大小
      if (!WriteFile (fp,lp,SizeofResource (NULL,res),&a,NULL))
      return 1;
      //关闭句柄
      CloseHandle (fp);
      //释放内存
      FreeResource (gl); 
     
      //查找flash文件并加载
      TCHAR strCurDrt[500];
      int nLen = ::GetCurrentDirectory(500,strCurDrt);
      if( strCurDrt[nLen]!='\\' )
      {
      strCurDrt[nLen++] = '\\';
      strCurDrt[nLen] = '\0';
      }
       
      CString strFileName = strCurDrt;
      strFileName += "search.swf";
      m_MyFlash.LoadMovie(0, strFileName);
      m_MyFlash.Stop();
    明白了