CAnimateCtrl::Open(LPCTSTR) 需外部 AVI 檔案,部署不便。改用接受 UINT 資源 ID 的多載版本,即可將 AVI 內嵌於 EXE 中。
.rc 檔手動加入:IDR_MYANIMATION AVI DISCARDABLE "res\\myanim.avi"IDR_MYANIMATION 須定義為整數常數(不可用字串),AVI 檔置於專案 res 目錄。同樣方法可嵌入任何檔案(如 FOO 類型):
IDR_MYFOOFILE FOO DISCARDABLE "res\\myanim.foo"
讀取時需自行撰寫程式碼:
HRSRC hRsrc = ::FindResource(hInst, MAKEINTRESOURCE(IDR_MYFOOFILE), "FOO"); DWORD len = SizeofResource(hInst, hRsrc); BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc); // 使用 CMemFile 視為記憶體檔案操作 CMemFile file(lpRsrc, len); file.Read(...);
甚至可搭配 CDocument 覆寫 OnOpenDocument 直接開啟資源檔案。