Virtools:把Virtools文件封装到可执行文件中
2010年06月07日
Virtools:把Virtools文件封装到可执行文件中
目的:建立独立播放的VT可执行文件
前提:安装VC 6.0;安装DirectX SDK
因为SDK中提供的文件就是基于VC 的。而编译这些文件要用到DirectX中的Lib和头文件等,所以DirectX_SDK要安装。由于现在大多数朋友用的VT都是3.0或以上版本的,可以只安装DirectX9.0 SDK,如果你是net开发环境,直接安装DirectX9.0 c SDK版本;如果你是VC6用SDK extras把DirectX9.0 SDK升级到DirectX9.0C SDK即可版本。
经过测试VT3.08 SDK对DirectX9.0C SDK完全是支持的。
设计知识资源网 1.新建一个文件夹,把你VT安装目录下的Sdk中的Samples.dsw及Standalone Playe放进来。
2.用VC 打开Smaple.dsw,出现寻找其他的dsp文件的窗口,选择取消。
3.在VC 的FileView中删除所有才找不到位置的档案,只留下NewPlayerStatic files。
4.在Projectoption中Link相应的头文件和库文件。
如图:(我这里安装了DirectX8 SDK和DirectX9 SDK)
你要保证你的DirectX SDK的Lib目录要在C:Program FilesMicrosoft Visual StudioVC98LIB的上边。你如果只安装了DirectX9.0 SDK这样编辑Lib的引用:Project--->Setting--->Link,在Object/library modules栏目中只留下以下的Lib d3dx9.lib OpenGL32.lib Glu32.lib Ws2_32.lib Vfw32.lib winmm.lib msacm32.lib dinput.lib dxguid.lib。
5.这时你可以编译的文件文件(生成一个播放器).执行可以发现生成的EXE比较大,是因为我们把DLL中的函数和接口等全部封装在EXE文件中的缘故.执行这个文件。
6.改造我们的Windows,因为我们是要封装VT到EXE中,所以把右键菜单,不需要的按钮全部去处。在VC 中的ClassView中找到回调函数LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)注释掉相应消息响应函数。
//屏蔽右键菜单:注释掉case WM_RBUTTONUP: OnContextMenu(); break;这一行
//屏蔽掉按钮的单击消息响应(关闭按钮的响应不应注释掉):注释掉这几行Code:
case BTN_PLAY:
g_CurrentPlayState|=1;
OnPlayPause(0);
break;
case BTN_RESET:
g_CurrentResetState=2;
OnReset();
break;
case BTN_LOAD:
g_CurrentLoadState=2;
OnLoad();
break;
8.这时候我们来更改Windows的窗口标题:我们让它支持中文的显示:在VC 中的ResourceView中找到String Table.选中他下边的子项,在右键菜单中打开它的属性窗口,把Language修改成Chinese。
9.编辑右边的TITLE项,输入你的标题。
10.把头文件"afxRes.h"包到Resource.h文件中去。在Resource.h中加入这一行:
#include
11.接下来我们把我们要播放的VT文件Import到VC 中的ResourceView中去.确定你的Res资源类型。
12.你可以看到你的VT文件已经到导入进来了。
13.接下来我和大家说一下播放VT文件的思路:我们需要播放VT时,我们可以把VC 中的VT资源导出来生成一个临时文件,然后让Player而播放即可,播放结束我们在用程序把它删除。
14.编辑InitInstance()函数接口,把 FileName变成全局变量。
//注释掉这一行
char FileName[512]="";把这段变量声明放到对应文件的开始部分.
15.继续编辑InitInstance()函数,在SetCursor(::LoadCursor(NULL,IDC_ARROW));这一行下边加入导出VT临时文件的Code:
CString Type="VIRTOOL";
HRSRC rest=FindResource(NULL,MAKEINTRESOURCE(IDR_VIRTOOL1),Type);
HGLOBAL gl=LoadResource (NULL,rest);LPVOID lp=LockResource(gl); //返回指向资源内存的地址的指针。
lstrcpyn(FileName,"c:\Temp.vmo",512);
HANDLE fp;
fp= CreateFile(FileName ,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
DWORD a; //sizeofResource 得到资源文件的大小
if (!WriteFile (fp,lp,SizeofResource (NULL,rest),&a,NULL))
return false;
CloseHandle (fp); //关闭句柄
FreeResource (gl); //释放内存
你可以看到我把VT的临时文件放到了C:目录下.你可以任意修改目录到任何地方。
16.实现Exit时删除临时文件:
修改void ExitVirtoolsPlayer()函数,加入这一行代码到PostQuitMessage(0);这一行的前边:
DeleteFile(FileName)
发表评论
-
Android IPC进程间通讯机制
2012-01-20 10:28 591Android IPC进程间通讯机制 2011年06月17日 ... -
说说IO - IO的分层
2012-01-20 10:28 742说说IO - IO的分层 2011年 ... -
使用 libevent 和 libev 提高网络应用性能
2012-01-20 10:28 721使用 libevent 和 libev 提 ... -
Linux下进程通信
2012-01-20 10:28 821Linux下进程通信 2011年05 ... -
同步/异步与阻塞/非阻塞的区别
2012-01-20 10:28 470同步/异步与阻塞/非阻 ... -
安卓模拟器手机上网,玩游戏
2012-01-19 15:30 1166安卓模拟器手机上网,玩 ... -
3.1 MFC概述
2012-01-19 15:30 6203.1 MFC概述 2009年12月01 ... -
Windows与Linux共存之重装Windows经历
2012-01-19 15:30 550Windows与Linux共存之重装W ... -
给不会打字的朋友推荐一种鼠标写字的输入法
2012-01-19 15:29 890给不会打字的朋友推荐一种鼠标写字的输入法 2011年05月2 ... -
即将成为过去的同事(二)
2012-01-17 05:15 581即将成为过去的同事(二) 7小时前 刘莉萍:作为白手起家 ... -
献给我想念的龙中0809班
2012-01-17 05:15 584献给我想念的龙中0809班 7小时前 可爱的龙中0809 ... -
我的日志
2012-01-17 05:15 636我的日志 7小时前 如果没有严格的纪律约束EL涛 ... -
夏暮雪只爱过一个人,他叫陆北岛。(小说完整版)
2012-01-17 05:14 936夏暮雪只爱过一个人,他叫陆北岛 ... -
嘿,你好吗。我很好。
2012-01-17 05:14 699嘿,你好吗。我很好。 7小时前 ... -
在Window下编译OpenH323(上)---------编译PWLib
2012-01-16 04:09 1461在Window下编译OpenH323(上)---------编 ... -
今天给自己做RIA扫盲
2012-01-16 04:09 933今天给自己做RIA扫盲 2009年10月14日 什么是R ... -
URL地址
2012-01-16 04:09 1170URL地址 2010年11月04日 http://pce ... -
flex 网络系统
2012-01-16 04:09 908flex 网络系统 2009年08月24日 Web OS ... -
基于PureMVC的一个Flex MP3播放器分析
2012-01-16 04:09 504基于PureMVC的一个Flex MP3 ...
相关推荐
一个简单的小游戏,用virtools开发,可以直接运行
virtools 文件 实例文件 源文件virtools 文件 实例文件 源文件virtools 文件 实例文件 源文件
virtools3.5授权文件virtools3.5授权文件
virtools工具是进行三维漫游的常用软件,其模型可从3dsmax类型文件导入,但需要转换工具。该软件就是所需要的工具。可直接安装。
virtools 室内漫游 实例文件 可修改 漫游 virtools 室内漫游 实例文件 可修改 漫游
可将3dmax转成virtools文件,导出成nmo格式的文件
virtools文件转换插件
3d life player virtools 中生成动画后运行文件 是一款很好的应用程序
Virtools 5.0 授权文件,不再受试用限制
Virtools中文手册01 Virtools中文手册02 Virtools中文手册03 Virtools中文手册04
3dsmax到virtools示例制作(单文件exe)过程记录的视频演示。
Virtools dev 3/5 许可文件。 安装文件去百度一下吧。
Virtools 中文精华教程
virtools英文帮助翻译成的中文帮助,可以做为中文手册来应用。
Virtools中文教程,包括常见基本的操作,简单易懂!
将virtools生成的vmo文件打包成可独立运行的exe文件,文件名改为loading.vmo
1、将要打包的文件(后缀.cmo)、解压得到的make exe.bat和mplay.exe文件......。 2、右键make exe.bat文件→...,......... 3、....................。 4、双击make exe.bat文件即可在该文件内看到生成的打包文件。...
Virtools中文教程+SDK初探+基礎課程教材-愛迪斯提供
maya 文件转出到virtools 主要是对5.0的 版本 玛雅2011的版本