龍神録10章のpspへの移植

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
オワタ崎

龍神録10章のpspへの移植

#1

投稿記事 by オワタ崎 » 14年前

初めまして。ここで質問させていただくのはこれが最初となります。
龍神録の9章まではpspに表示させることができたのですが、10章を今まで通りにコンパイルしたらエラーがでてしまいました。

環境は
OS vista
IDE visualC++2008 Expless Edition
SDK Minimalist PSPSDK for Windows
です。

コード:

---main.cpp---
#define GLOBAL_INSTANCE 
#include <include/GV.h>
#include <lib/dxlibp.h>

PSP_MODULE_INFO("ZAKI", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);


//ループで必ず行う3大処理
int ProcessLoop(){
    if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
    if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
    GetHitKeyStateAll_2();//現在のキー入力処理を行う
    GetHitPadStateAll();  //現在のパッド入力処理を行う
    return 0;
}

int main()
{
    
    if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化

    while(ProcessLoop()==0){//メインループ
        switch(func_state){
            case 0://初回のみ入る処理
                load();        //データロード
                first_ini();//初回の初期化
                func_state=99;
                break;
            case 99://STGを始める前に行う初期化
                ini();
                func_state=100;
                break;
            case 100://通常処理
                calc_ch();    //キャラクタ計算
                ch_move();    //キャラクタの移動制御
                enemy_main();//敵処理メイン
                graph_main();//描画メイン
                stage_count++;
                break;
            default:
                printfDx("不明なfunc_state\n");
                break;
        }
        if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
        ScreenFlip();//裏画面反映
    }
    DxLib_End();//DXライブラリ終了処理
    return 0;
}

コード:

---ini.cpp---
#include <include/GV.h>

//一番最初の初期化
void first_ini(){
        configpad.down=0;
        configpad.left=1;
        configpad.right=2;
        configpad.up=3;
        configpad.bom=4;
        configpad.shot=5;
        configpad.slow=11;
        configpad.start=13;
        configpad.change=6;
}

//ゲームの初期化
void ini(){
        stage_count=0;
        memset(&ch,0,sizeof(ch_t));//自機データの初期化
        ch.x=FIELD_MAX_X/2;
        ch.y=FIELD_MAX_Y*3/4;
        memset(enemy,0,sizeof(enemy_t)*ENEMY_MAX);//敵データの初期化
}

---Makefile---
TARGET = TEST
OBJS = ./src/main.o
OBJS += ./src/boss_shot.o
OBJS += ./src/boss_shotH.o
OBJS += ./src/char.o
OBJS += ./src/cshot.o
OBJS += ./src/enemy.o
OBJS += ./src/enemy_act_pattern.o
OBJS += ./src/fps.o
OBJS += ./src/graph.o
OBJS += ./src/graph_back.o
OBJS += ./src/ini.o
OBJS += ./src/key.o
OBJS += ./src/load.o
OBJS += ./src/music.o
OBJS += ./src/out.o
OBJS += ./src/shot.o
OBJS += ./src/shotH.o


INCDIR =
CFLAGS = -O2 -G0 -Wall -g
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

LIBDIR =
#PSP_FW_VERSION=
LDFLAGS =

LIBS = -lpspgum -lpspgu
LIBS =
LIBS += ./lib/dxlibp.a -lpspgu -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec -lpsputility -lpspvalloc -lpsppower#DXライブラリPortable使用時に追加


EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = ZAKI
PSP_EBOOT_ICON = NULL
PSP_EBOOT_ICON1 = NULL
PSP_EBOOT_UNKPNG= NULL
PSP_EBOOT_PIC1 = NULL
PSP_EBOOT_SND0 = NULL

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

後のファイルは#includeで指定する場所をかえたくらいです。
#include "../include/GV.h"  →  #include <include/GV.h> などです。
(これだとあまり変わりませんが)

で、肝心のエラー内容ですが、

src/ini.cpp: In function 'void ini()':
src/ini.cpp:19: error: 'memset' was not declared in this scope
make: *** [src/ini.o] Error 1
Project : error PRJ0019: ツールはエラー コードを返しました : "メイクファイル プロジェクト動作を実行しています。"

となっています。

どなたか知恵をかしてください。

白い時空
記事: 18
登録日時: 14年前
住所: 埼玉県さいたま市

Re: 龍神録10章のpspへの移植

#2

投稿記事 by 白い時空 » 14年前

'memset' was not declared in this scope
これは'memset'がこのスコープ内で宣言されて無いというエラーですかね。

memsetを使うにはstring.hをincludeする必要があるのですが、しましたか?

オワタ崎

Re: 龍神録10章のpspへの移植

#3

投稿記事 by オワタ崎 » 14年前

お早い返信ありがとうございます。
いえ、指摘された通りstring.hをincludeしていませんでした。

string.hをincludeしたところ、無事にコンパイルすることができました。
とてもわかりやすい回答ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る