たびたびすいません。

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

たびたびすいません。

#1

投稿記事 by 神魔 » 18年前

すいません、また行き詰ってしまいました。
前回書き込みをしたときの問題は解決したのですが、新しい問題が発生してしまいました。

#include "DxLib.h"
#include <stdio.h>

void hannou(int);

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){

int Cr;
Cr=GetColor(255,255,255);
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
int I,A=0;
I=0;
while(1){
switch (I){
case 0:DrawString(0,0,"あなたって男?女?",Cr);
DrawString(15,30,"A:実は男です。",Cr);
DrawString(15,45,"B:意外に女です。",Cr);
while(1){
if(CheckHitKey(KEY_INPUT_A)==1||
CheckHitKey(KEY_INPUT_B))
break;
}
while(1){
ClearDrawScreen();
A++;
hannou(A);
if(CheckHitKey(KEY_INPUT_RETURN)==1)
ClearDrawScreen();
break;
}
break;
}
}

WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
void hannou(int a){

int i;
i=GetRand(4);
Cr=GetColor(255,255,255);
if(a<=10){
switch(i){
case 0:DrawString(0,0,"ふ~ん、で?",Cr);
break;
case 1:DrawString(0,0,"興味無いし。",Cr);
break;
case 2:DrawString(0,0,"ごめん、聞いてなかった。",Cr);
break;
case 3:DrawString(0,0,"だからなに?",Cr);
break;
case 4:DrawString(0,0,"へぇ。",Cr);
break;
}
}
}

前回とあまり変わっていませんが、このプログラムをコンパイルすると

test.cpp(44) : error C2065: 'Cr' : 定義されていない識別子です。

とエラーが出てしまいます。
どこがいけないのかまったくわかりません。
どなたか解決策を教えてください。
お願いいたします。

バグ

Re:たびたびすいません。

#2

投稿記事 by バグ » 18年前

エラーメッセージそのままの意味ですよ。
確かに、WinMainの中ではCrが定義されていますが、hannouの中には定義されていませんよね?

管理人

Re:たびたびすいません。

#3

投稿記事 by 管理人 » 18年前

過去に詳しく自作関数と、変数の有効範囲について説明したことがあります。

http://www.play21.jp/board/formz.cgi?ac ... q&rln=5134

こちらの「自作関数について」と「変数の有効範囲について」をお読みください。

神魔

Re:たびたびすいません。

#4

投稿記事 by 神魔 » 18年前

えっと、それってつまりhannouの中で変数Crを宣言すればいいんですか?
(int i,Crみたいな感じで。)
でもそうすると

libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jtransform_execute_transformation" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jcopy_markers_execute" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jtransform_adjust_parameters" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jtransform_request_workspace" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jcopy_markers_setup" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_write_stdout" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_read_stdin" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_read_scan_script" は未解決です
libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_keymatch" は未解決です
Debug/test.exe : fatal error LNK1120: 外部参照 9 が未解決です。
link.exe の実行エラー

ていうエラーが出てしまうんです。

また、Crをグローバル関数として宣言しようと思い、
#include "DxLib.h"
#include <stdio.h>
int Cr;

と記述してみたのですが、上と同じエラーが出てしまいました。
どうすればいいですか?

管理人

Re:たびたびすいません。

#5

投稿記事 by 管理人 » 18年前

コンパイラは何を使っています?
もしかしてVisual Studio 2005 ExpressEditionじゃないでしょうか。
フリー版は設定が必要です。
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html

それでも解決しない場合は本家で聞いてみてください。
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?

後、質問する前にほとんど同じような質問が10日前に投稿されているので、そちらも一応目を通してから投稿してください。
http://hpcgi2.nifty.com/natupaji/bbs/pa ... iew&no=442

神魔

Re:たびたびすいません。

#6

投稿記事 by 神魔 » 18年前

バグさん、管理人さん、ありがとうございました。
返信遅れてしまい、すいませんでした。
最近PCを起動することができなかったので…。

管理人さんのおっしゃった通り、DXライブラリ置き場掲示板で質問してみました。
お騒がせしてすいませんでした。

閉鎖

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