無題

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

無題

#1

投稿記事 by シュウ » 16年前

どうも、シュウです。
最近RPGを作ろうと思い立って製作を始めたのですが、構造体内部の変数を表示しようとすると以下のようなエラーが発生してしまいます。
ポインタを使ったりと何度か工夫したのですが、原因が一向に掴めません。
どなたか、このエラーが発生する理由を教えてください。


DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_packet_iskeyframe が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_init が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_comment_init が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_info_init が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_info_clear が関数 "int __cdecl TheoraDecode_Terminate(int)" (?TheoraDecode_Terminate@@YAHH@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_comment_clear が関数 "int __cdecl TheoraDecode_Terminate(int)" (?TheoraDecode_Terminate@@YAHH@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_clear が関数 "int __cdecl TheoraDecode_Terminate(int)" (?TheoraDecode_Terminate@@YAHH@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_header が関数 "int __cdecl TheoraDecode_ReadHeader(struct tagDECODE_THEORA *)" (?TheoraDecode_ReadHeader@@YAHPAUtagDECODE_THEORA@@@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_YUVout が関数 "unsigned long __stdcall TheoraDecode_Thread(void *)" (?TheoraDecode_Thread@@YGKPAX@Z) で参照されました。
DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_packetin が関数 "int __cdecl _TheoraDecode_IncToFrame(int,int)" (?_TheoraDecode_IncToFrame@@YAHHH@Z) で参照されました。

Mist

Re:無題

#2

投稿記事 by Mist » 16年前

DXライブラリへのパスがきちんと設定されていない場合によく表示されるエラーですが、修正する前はエラーなくビルドできていたのですよね?
もしくは、修正前の状態に戻すとエラーは出ないんですよね?

だとすると、ソースを見ないことには答えようがないです。

シュウ

Re:無題

#3

投稿記事 by シュウ » 16年前

修正しないと別のエラーが出るんです。
mainのソースを投稿します。

#define GLOBAL_INSTANCE
#include "../HEADER/Dx.h"

//現在のキー入力処理を行う
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を返す
return 0;
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
while(ProcessLoop()==0) {

item boll;
char *hp;
hp = boll.name;
hp = "abc";
int white=GetColor(255,255,255);
DrawFormatString( 10, 10, white, "%s", hp);

if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
ScreenFlip();//裏画面反映
}
DxLib_End();//DXライブラリ終了処理
return 0;
}

ねこ

Re:無題

#4

投稿記事 by ねこ » 16年前

修正前のエラーが消えたのではなく、修正後に起きた別のエラーが先に検出されてるため別のエラーが起こってるように見えるだけな気がします。

DXLIBを導入した他のプログラムは正常に動いていますか?
他でも同様のエラーが起きるならライブラリへのリンクが正常に設定されていない可能性が高いです。

シュウ

Re:無題

#5

投稿記事 by シュウ » 16年前

竜神録をデバッグ・コンパイルしたところ、問題なく動きました。
修正前のエラーもそんな感じですね。
リンク以外にあのエラーが発生する理由はありますか?

Mist

Re:無題

#6

投稿記事 by Mist » 16年前

> リンク以外にあのエラーが発生する理由はありますか?

パスが指定している場所にDXライブラリのlibファイルが存在しないか、リンク先が間違っているかのどちらかしかないと思います。
シュウさんが作られているRPGのプロジェクトの設定は全て竜神録と同じになっていますか?
プロジェクトの設定は個別に行わなければならないため、「竜神録のビルドが出来る」から「設定は大丈夫」というわけではありません。

シュウ

Re:無題

#7

投稿記事 by シュウ » 16年前

成る程、それは盲点でした。
では、RPGのプロジェクトに適した設定するにはどうしたらいいでしょうか?

Mist

Re:無題

#8

投稿記事 by Mist » 16年前

> RPGのプロジェクトに適した設定

何か勘違いされているようですが、私が言いたいのはDXライブラリを使うためのプロジェクト設定をしたかどうかです。

開発環境の明記がありませんが、本家の使い方解説を読んで正しく設定できているかを確認してください。

http://homepage2.nifty.com/natupaji/DxLib/dxuse.html

シュウ

Re:無題

#9

投稿記事 by シュウ » 16年前

ああ~、そういうことでしたか。
今調べたところ、設定自体には何の問題もなかったのですが、DXライブラリの中身に幾つか欠損がありました。
DXライブラリの本体をDLし直して再度コンパイルしたところ、無事に起動できました。
Mistさん、ねこさん、回答ありがとうございました。今度来たときも宜しくお願いします。

閉鎖

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