看了一个博文《opengl载入多个3ds模型失败记》,他的方法非常好,就只差最后一步了。
原程序运行图:
下面用三种方法来做最后一步。
1、运行外部程序
2、点到一个文件就载入内存,并不释放内存直到程序结束(在内存中存放所有模型)
3、释放上个文件,再载入当前的(只有一个模型)
下面分别来实现:
------------------------------------------------------------
1、运行外部程序
把前面我们的显示3DS程序命名为show3ds.exe 放在当前位置
在WndProc函数的case WM_COMMAND :中替换gothicLoader->Import3DS
if (LOWORD (wParam) == ID_LIST && HIWORD (wParam) == LBN_DBLCLK)
{
//gothicLoader->Import3DS(&gothicModel, "Data/3ds/middleTree.3DS");
//1、运行外部程序
int iIndex=2;
char szBuffer[256];
iIndex = SendMessage(hwndList,LB_GETCURSEL,0,0);//得到当前选择项
if (iIndex != LB_ERR){
SendMessage (hwndList, LB_GETTEXT, iIndex,(LPARAM) szBuffer);//得到选择文本
char m0[256];
if(strstr(szBuffer, "T_HELI_L.3DS"))
{
sprintf(m0,"T_HELI_L Data/3ds/%s",szBuffer);//直升机
system(m0);//运行外部程序
}
else{
sprintf(m0,"show3ds Data/3ds/%s",szBuffer);//其它
system(m0);//运行外部程序
}
}
}
其它代码可到其博客下载(百度网盘)
第一种完成