こんばんは。質問させて頂きました。
タイトルにもあるように、龍神録プログラムをborlandc++とbccdeveloperを使って作りたいのです。
Visual c++を使わない理由はPCのスペックの関係でコンパイルに時間がかかりすぎるからです。
ゲームプログラミングの館の方ではbccdeveloperでも上手くいったのですが、龍神録プログラミングの方は上手くできません。
projectフォルダのincludeファイルとsourceファイルの中にbcc用のDXライブラリを追加してコンパイルしても
4章以降では(3章まではきちんとコンパイルされて実行できました)lord関数に対してエラーを出します。
Visual c++のようにプロジェクトファイルから実行するような事をしないと駄目なのでしょうか?
説明が上手でなくて申し訳ないのですけれど、お答え頂ければ幸いです。よろしくお願いします
龍神録プログラムをbccdeveloperを使って作りたい
Re:龍神録プログラムをbccdeveloperを使って作りたい
結論からいえば、borlandc++とbccdeveloperでも出来ます。
私の方の環境では、エラーメッセージは表示されませんでした。
解決したいのであれば、エラーコードを貼って頂かない事にはなんとも言えませんね……。
私の方の環境では、エラーメッセージは表示されませんでした。
解決したいのであれば、エラーコードを貼って頂かない事にはなんとも言えませんね……。
Re:龍神録プログラムをbccdeveloperを使って作りたい
ご回答ありがとうございます。bccdeveloperとborlandc++でも出来るのですね。
エラーメッセージは以下のとおりです。
\project\4章\mydat\source>bcc32 -tW main.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
main.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル 'load()' が未解決(C:\MYWORKS\SAND2\PROJECT\4章\MYDAT\SOURCE
\MAIN.OBJ が参照)
Error: 外部シンボル 'graph_main()' が未解決(C:\MYWORKS\SAND2\PROJECT\4章\MYDAT\
SOURCE\MAIN.OBJ が参照)
Error: 外部シンボル 'CheckStateKey(unsigned char)' が未解決(C:\MYWORKS\SAND2\PR
OJECT\4章\MYDAT\SOURCE\MAIN.OBJ が参照)
Error: 外部シンボル 'GetHitKeyStateAll_2()' が未解決(C:\MYWORKS\SAND2\PROJECT\4
章\MYDAT\SOURCE\MAIN.OBJ が参照)
よろしくお願いします。
エラーメッセージは以下のとおりです。
\project\4章\mydat\source>bcc32 -tW main.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
main.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル 'load()' が未解決(C:\MYWORKS\SAND2\PROJECT\4章\MYDAT\SOURCE
\MAIN.OBJ が参照)
Error: 外部シンボル 'graph_main()' が未解決(C:\MYWORKS\SAND2\PROJECT\4章\MYDAT\
SOURCE\MAIN.OBJ が参照)
Error: 外部シンボル 'CheckStateKey(unsigned char)' が未解決(C:\MYWORKS\SAND2\PR
OJECT\4章\MYDAT\SOURCE\MAIN.OBJ が参照)
Error: 外部シンボル 'GetHitKeyStateAll_2()' が未解決(C:\MYWORKS\SAND2\PROJECT\4
章\MYDAT\SOURCE\MAIN.OBJ が参照)
よろしくお願いします。
Re:龍神録プログラムをbccdeveloperを使って作りたい
えぇとですね、プロジェクトの方にkey.cppやchar.cppなどを追加しました?
ビルドログを見る限り、追加されていないように見えるのですが……
ビルドログを見る限り、追加されていないように見えるのですが……
Re:龍神録プログラムをbccdeveloperを使って作りたい
ご回答ありがとうございます。
key.cppやchar.cppは追加しました。
ですが、今度は以下のようなエラーが出てしまいました。
エラー E2141 main.cpp 31: 宣言の構文エラー(関数 __stdcall WinMain(HINSTANCE__ *,
HINSTANCE__ *,char *,int) )
エラーが出た部分をコピーペーストを行ってコンパイルしたのですが駄目でした。
また、自分ではソースを触らず、収納されている4章をそのままコンパイルしようとしたところ、
Fatal: ファイル LIBTHEORA_STATIC.LIB が開けません
というエラーが出ました。これはディレクトリ名が半角でないと起こるみたいなのですが、
4章を4にしても同様のエラーが出ました。
解決できる方法やお気づきの点がありましたらご教授の程をよろしくお願いします。
key.cppやchar.cppは追加しました。
ですが、今度は以下のようなエラーが出てしまいました。
エラー E2141 main.cpp 31: 宣言の構文エラー(関数 __stdcall WinMain(HINSTANCE__ *,
HINSTANCE__ *,char *,int) )
#define GLOBAL_INSTANCE #include "../include/GV.h" int Key[256]; int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[/url]){ char GetHitKeyStateAll_Key[256]; GetHitKeyStateAll( GetHitKeyStateAll_Key ); for(int i=0;i<256;i++){ if(GetHitKeyStateAll_Key==1) GetHitKeyStateAll_InputKey++; else GetHitKeyStateAll_InputKey=0; } return 0; } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE);//ウィンドウモード if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化 while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){ //↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない //ココ!! //現在のキー入力処理を行う extern int GetHitKeyStateAll_2(); //受け取ったキー番号の現在の入力状態を返す extern int CheckStateKey(unsigned char Handle); //ループで必ず行う3大処理 int ProcessLoop(){ if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す GetHitKeyStateAll_2();//現在のキー入力処理を行う return 0; } int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ ChangeWindowMode(TRUE);//ウィンドウモード if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化 while(ProcessLoop()==0){//メインループ if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク ScreenFlip();//裏画面反映 } DxLib_End();//DXライブラリ終了処理 return 0; } ScreenFlip(); } DxLib_End(); return 0; }
エラーが出た部分をコピーペーストを行ってコンパイルしたのですが駄目でした。
また、自分ではソースを触らず、収納されている4章をそのままコンパイルしようとしたところ、
Fatal: ファイル LIBTHEORA_STATIC.LIB が開けません
というエラーが出ました。これはディレクトリ名が半角でないと起こるみたいなのですが、
4章を4にしても同様のエラーが出ました。
解決できる方法やお気づきの点がありましたらご教授の程をよろしくお願いします。
Re:龍神録プログラムをbccdeveloperを使って作りたい
えぇとですね、どうやら四章の
>Fatal: ファイル LIBTHEORA_STATIC.LIB が開けません
このエラーは、libファイルへのスコープが合っていないために起こるエラーです。
スコープ内に対象のlibファイルがないとそのエラーが出るようです。
includeファイル内ではなく、そのプロジェクトのdbpファイルと同じ個所に全てのlibファイルを置くと解決します。
または、bccのlibファイル内に置くという方法が考えられます。
また、上記main.cpp内のエラーですが、winmain関数内でextern宣言や関数を宣言している為に起きている
エラーです。

>Fatal: ファイル LIBTHEORA_STATIC.LIB が開けません
このエラーは、libファイルへのスコープが合っていないために起こるエラーです。
スコープ内に対象のlibファイルがないとそのエラーが出るようです。
includeファイル内ではなく、そのプロジェクトのdbpファイルと同じ個所に全てのlibファイルを置くと解決します。
または、bccのlibファイル内に置くという方法が考えられます。
また、上記main.cpp内のエラーですが、winmain関数内でextern宣言や関数を宣言している為に起きている
エラーです。

Re:龍神録プログラムをbccdeveloperを使って作りたい
4章のmain.cppファイルは、main.cpp変更のところに
書かれているコードがすべてです。
3章のmain.cppに4章の変更を足してはいけません。
3章のmoin.cppの
#define GLOBAL_INSTANCE
#include "../include/GV.h"
以外は消して、4章のmain.cpp変更をコピペすればいいです。
書かれているコードがすべてです。
3章のmain.cppに4章の変更を足してはいけません。
3章のmoin.cppの
#define GLOBAL_INSTANCE
#include "../include/GV.h"
以外は消して、4章のmain.cpp変更をコピペすればいいです。
Re:龍神録プログラムをbccdeveloperを使って作りたい
ご回答ありがとうございます。
仰ったとおりdbpファイルと同じ場所にlibファイルを置く事によって、コンパイルすることが出来ました!
本当にありがとうございました!!
仰ったとおりdbpファイルと同じ場所にlibファイルを置く事によって、コンパイルすることが出来ました!
本当にありがとうございました!!
Re:龍神録プログラムをbccdeveloperを使って作りたい
last snowさん、wingさん、ありがとうございます!
おかげ様で無事先に進めそうです!
また、章が進むごとにフォルダも進めていくと勘違いしていましたが、1章の何も書いて無いフォルダを使い続ければいいのですね!
おかげ様で無事先に進めそうです!
また、章が進むごとにフォルダも進めていくと勘違いしていましたが、1章の何も書いて無いフォルダを使い続ければいいのですね!