青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當(dāng)自強(qiáng)而不息

創(chuàng)建游戲內(nèi)核(4)【OO改良版】

 

本篇是創(chuàng)建游戲內(nèi)核(3)【OO改良版】的續(xù)篇,關(guān)于該內(nèi)核的細(xì)節(jié)說(shuō)明請(qǐng)參閱創(chuàng)建游戲內(nèi)核(4)


接口:

/*************************************************************************
PURPOSE:
    Interface for data read and write from file.
*************************************************************************/


#ifndef _CORE_DATA_H_
#define _CORE_DATA_H_

typedef 
int BOOL;
typedef unsigned 
long ulong;

void* data_create(ulong size);
void data_destroy(void* data);
BOOL data_save(
const char* filename, const void* data, ulong size);
BOOL data_load(
const char* filename, void** data, ulong* size);

#endif
 

實(shí)現(xiàn):

/*************************************************************************
PURPOSE:
    Implenents for data read and write from file.
*************************************************************************/


#include <stdio.h>
#include <malloc.h>
#include <memory.h>
#include "core_data.h"

#pragma warning(disable : 4996)

#define NULL    0

#define TRUE    1
#define FALSE   0

//-----------------------------------------------------------------------------
// Create data object.
//-----------------------------------------------------------------------------
void* data_create(ulong size)
{
    
void* _data = malloc(size);
    
    
if(_data)
        memset(_data, 0, size);

    
return _data;
}

//-----------------------------------------------------------------------------
// Destroy data object
//-----------------------------------------------------------------------------
void data_destroy(void* data)
{
    
if(data)
    {
        free(data);
        data = NULL;
    }    
}

//-----------------------------------------------------------------------------
// Write data into file.
//-----------------------------------------------------------------------------
BOOL data_save(const char* filename, const void* data, ulong size)
{
    FILE* _fp;

    
if(data == NULL || size == 0)
        
return FALSE;

    
// open file, write size and data.
    if((_fp = fopen(filename, "wb")) == NULL)
        
return FALSE;

    fwrite(&size, 1, 4, _fp);
    fwrite(data, 1, size, _fp);
    fclose(_fp);

    
return TRUE;
}

//-----------------------------------------------------------------------------
// Load data from file.
//-----------------------------------------------------------------------------
BOOL data_load(const char* filename, void** data, ulong* size)
{
    FILE* _fp;

    
if((_fp = fopen(filename, "rb")) == NULL)
        
return FALSE;

    
// read in size and data

    
ulong _size;
    
char* _data;

    fread(&_size, 1, 4, _fp);

    
if((_data = (char*) malloc(_size)) == NULL)
        
return FALSE;

    memset(_data, 0, 
sizeof(_size));

    fread(_data, 1, _size, _fp);
    fclose(_fp);

    *data = _data;

    
// store size in return
    if(size != NULL)
        *size = _size;

    
return TRUE;
}

測(cè)試代碼:

/*****************************************************************************
PURPOSE:
    Test for data save and load.
*****************************************************************************/


#include "core_common.h"
#include "core_framework.h"
#include "core_data.h"

// a structure to contain a name
struct NAME
{
    
char name[32];
};

class APP : public FRAMEWORK
{
public:       
    BOOL init()
    {
        
const int _data_size = 64;

        
// create the data package (w/64 bytes) and get the pointer, casting it to an NAME structure type.
        m_names = (NAME*) data_create(_data_size);

        
// since there are 64 bytes total, and each name uses 32 bytes, then I can have 2 names stored.
        strcpy(m_names[0].name, "name1");
        strcpy(m_names[1].name, "name2");

        
const char* _filename = "names.data";

        
// save the names to disk
        data_save(_filename, m_names, _data_size);

        
// destroy data
        data_destroy(m_names);
        
        DWORD _load_size;

        
// load the names from disk, size will equal 64 when the load function returns.
        data_load(_filename, (void**) &m_names, &_load_size);    

        
// display the names
        MessageBox(NULL, m_names[0].name, "1st name", MB_OK);
        MessageBox(NULL, m_names[1].name, "2nd name", MB_OK);
        
        data_destroy(m_names);        

        
return TRUE;
    }
    
private:
    NAME* m_names;
};

//--------------------------------------------------------------------------------
// Main function, routine entry.
//--------------------------------------------------------------------------------
int WINAPI WinMain(HINSTANCE inst, HINSTANCE pre_inst, LPSTR cmd_line, int cmd_show)
{
    APP app;

    
if(! build_window(inst, "MainClass", "MainWindow", WS_OVERLAPPEDWINDOW, 0, 0, 640, 480))
        
return -1;
    
    app.run();

    
return 0;
}

posted on 2007-10-06 17:16 lovedday 閱讀(286) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


公告

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

隨筆分類(178)

3D游戲編程相關(guān)鏈接

搜索

最新評(píng)論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            伊人成人网在线看| 亚洲性xxxx| 亚洲视频视频在线| 在线中文字幕日韩| 亚洲一区二区三区中文字幕| 亚洲一级二级在线| 久久国产欧美日韩精品| 久久久99爱| 欧美成人一区二区三区片免费| 久久伊人免费视频| 亚洲国产精品久久久久| 亚洲国产91精品在线观看| 亚洲精品日产精品乱码不卡| 亚洲夜晚福利在线观看| 欧美在现视频| 欧美成年人网站| 国产精品男女猛烈高潮激情| 好吊妞**欧美| 中文精品99久久国产香蕉| 久久精品国产欧美亚洲人人爽| 免费中文日韩| 国产精品99久久99久久久二8 | 午夜精品短视频| 久久精品视频免费播放| 欧美日韩久久不卡| 国内精品一区二区| 亚洲午夜av电影| 免费观看一级特黄欧美大片| 日韩亚洲综合在线| 久久视频在线免费观看| 欧美手机在线视频| 亚洲成人在线| 性欧美在线看片a免费观看| 亚洲第一天堂无码专区| 亚洲欧美在线免费| 欧美日韩网站| 91久久精品国产91性色tv| 欧美在线网址| 99国产精品久久久久久久久久| 玖玖综合伊人| 黄色成人91| 欧美一区二区精品久久911| 亚洲精品一区二区三| 国产欧美一区二区三区国产幕精品| 久久综合免费视频影院| 欧美v日韩v国产v| 久久久久国产精品人| 又紧又大又爽精品一区二区| 欧美一区二区在线看| 亚洲影音一区| 精品成人久久| 亚洲激情在线播放| 欧美日韩高清在线播放| 亚洲欧美国产精品va在线观看| 99视频一区| 国产一区999| 亚洲精品欧美极品| 欧美日韩你懂的| 久久久久在线| 欧美午夜在线一二页| 久久精品国产69国产精品亚洲| 欧美亚洲一级| 中文国产一区| 巨乳诱惑日韩免费av| 亚洲摸下面视频| 欧美69视频| 久久久久一区二区| 欧美日韩一区二区在线播放| 久久久不卡网国产精品一区| 欧美精品一区二区精品网| 久久精品国产久精国产爱| 欧美欧美天天天天操| 欧美风情在线| 亚洲韩日在线| 猛男gaygay欧美视频| 久久超碰97中文字幕| 老色鬼久久亚洲一区二区| 国产精品―色哟哟| 亚洲第一在线| 亚洲精品国产精品乱码不99| 久久久久这里只有精品| 久久久久久久综合狠狠综合| 国产精品乱人伦一区二区| 在线亚洲美日韩| 欧美影院在线| 亚洲二区在线观看| 欧美精品激情在线| 亚洲视频电影图片偷拍一区| 午夜精品福利视频| 国产一区二区三区精品欧美日韩一区二区三区| 日韩亚洲精品电影| 欧美一区国产二区| 亚洲美女在线国产| 国产精品视频九色porn| 久久久xxx| 亚洲美女精品久久| 久久精品国产亚洲aⅴ| 亚洲精品一区二区三区四区高清| 欧美日韩国产大片| 久久日韩粉嫩一区二区三区| 亚洲人在线视频| 久久国产精品99国产精| 亚洲日韩欧美视频| 国产毛片一区二区| 欧美日韩福利在线观看| 久久精品综合| 欧美一区二区精品| 亚洲深夜福利| 99国产精品久久久久久久久久| 久久久久国产精品一区| 性视频1819p久久| 夜夜爽www精品| 亚洲国产日韩在线一区模特| 国产欧美日韩精品一区| 亚洲色无码播放| 欧美电影在线播放| 久久影音先锋| 欧美 日韩 国产在线| 蜜臀a∨国产成人精品| 久久婷婷国产综合精品青草| 欧美中在线观看| 欧美在线你懂的| 久久久精品久久久久| 美日韩丰满少妇在线观看| 免费试看一区| 亚洲精品视频在线播放| 亚洲人精品午夜| 亚洲欧美日韩国产中文| 久久国产精品久久w女人spa| 久久精品一区二区| 能在线观看的日韩av| 欧美日韩免费高清| 国产欧美欧美| 一本综合久久| 久久久99国产精品免费| 91久久精品日日躁夜夜躁欧美 | 久久免费黄色| 欧美14一18处毛片| 国产精品视频yy9099| 亚洲精品国产精品乱码不99 | 亚洲精品激情| 欧美一区二区久久久| 亚洲日韩欧美视频一区| 久久色中文字幕| 国产一区二区三区久久久| 一本大道久久精品懂色aⅴ| 美国十次成人| 久久国产福利| 黄色综合网站| 美女脱光内衣内裤视频久久影院| 99re这里只有精品6| 久久久水蜜桃| 亚洲欧美999| 国产精品video| 亚洲一区二区三区四区五区黄 | 99国内精品久久| 亚洲福利视频三区| 麻豆av一区二区三区久久| 狠狠干综合网| 欧美激情一区二区三级高清视频 | 久久精品动漫| 久久久久久久久久码影片| 国产综合色精品一区二区三区| 亚洲欧美日韩国产中文在线| 亚洲人成久久| 欧美日韩1080p| 亚洲欧美区自拍先锋| 亚洲欧美日韩在线播放| 在线观看国产日韩| 亚洲美女av在线播放| 在线精品亚洲一区二区| 免费看精品久久片| 亚洲精品免费在线播放| 亚洲一区国产视频| 亚洲亚洲精品在线观看 | 久久人人97超碰精品888| 欧美在线观看天堂一区二区三区| 久久久久久亚洲精品杨幂换脸| 久久久久久亚洲精品中文字幕 | 精品动漫3d一区二区三区免费 | 久久精品一区蜜桃臀影院| 国产精品看片你懂得| 免费在线看一区| 国产午夜亚洲精品不卡| 欧美成人高清| 国内精品视频在线播放| 9色porny自拍视频一区二区| 99国产精品视频免费观看一公开| 国产亚洲综合精品| 亚洲免费视频一区二区| 亚洲最新在线视频| 老司机免费视频久久| 美日韩丰满少妇在线观看| 欧美jizz19hd性欧美| 亚洲一区二区精品| 欧美aⅴ一区二区三区视频| 蜜桃av噜噜一区二区三区| 在线观看日韩av| 男人天堂欧美日韩| 一本不卡影院|