引数の数について

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

引数の数について

#1

投稿記事 by たいが » 14年前

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

title_disp(White,y);
title_key();


if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
ScreenFlip();//裏画面反映
}

DxLib_End();//DXライブラリ終了処理
return 0;
}

void title_disp(int x,int y){
DrawString( 150 , y , "→", x );
DrawString( 170 , 100 , "VS MODE" , x );
}




今、上のようなプログラムを書いたのですが、error C2660: 'title_disp' : 関数に 2 個の引数を指定できません。と表示されてしまいました。
なぜできないのでしょうか
引数についての理解が浅いせいかよくわかりません。
不足していることがあれば補足するのでよろしくお願いします。

あたっしゅ

Re:引数の数について

#2

投稿記事 by あたっしゅ » 14年前

ソースは部分的ではなく、全部貼れ。

#include <dxlib.h>

とか

int y;

とかがあるだろう。
貼ってないソースのところに、

void title_disp();

とかいう宣言があるんじゃないのか ?
下の

>void title_disp(int x,int y){

にあわせて

void title_disp(int x,int y);

にすればいいんじゃないのか ?

たいが

Re:引数の数について

#3

投稿記事 by たいが » 14年前

おっしゃる通りでした!
でもまた新たなエラーが出たので貼らせていただきます

//main.cpp

#define GLOBAL_INSTANCE
#include "../include/GV.h"

//ループで必ず行う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;//初期化と裏画面化
int White = GetColor( 255 , 255 , 255 ) ;
while(ProcessLoop()==0){//メインループ

title_disp(White,y);
title_key();


if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
ScreenFlip();//裏画面反映
}

DxLib_End();//DXライブラリ終了処理
return 0;
}


key.cpp

#include "../include/GV.h"

unsigned int stateKey[256];

int GetHitKeyStateAll_2(){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) stateKey++;
else stateKey=0;
}
return 0;
}

int CheckStateKey(unsigned char Handle){
return stateKey[Handle];
}

int title_key(){
if( CheckStateKey(KEY_INPUT_DOWN)==1 ||(CheckStateKey(KEY_INPUT_DOWN)%5==0 && CheckStateKey(KEY_INPUT_DOWN)>30)){
y+=20;
if(y==260)
y=100;
}
return y;
}

title.cpp

#include "../include/GV.h"

void title_disp(int x,int y){
DrawString( 150 , y , "→", x );
DrawString( 170 , 100 , "VS MODE" , x );
}

function.h

//graph.cpp
//描画メイン
GLOBAL void graph_main();

//key.cpp
//現在のキー入力処理を行う
GLOBAL int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
GLOBAL int CheckStateKey(unsigned char Handle);

GLOBAL void title_disp(int x,int y);
GLOBAL int title_key();

GV.h

#include "../../../include/DxLib.h"

#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL extern
#endif

#include "function.h" //関数宣言

GLOBAL int White;
GLOBAL int y=100;

#include "define.h"


こんな感じです
よろしくお願いします

たいが

Re:引数の数について

#4

投稿記事 by たいが » 14年前

すいません
エラーは

1>key.obj : error LNK2005: "int y" (?y@@3HA) は既に title.obj で定義されています。
1>main.obj : error LNK2005: "int y" (?y@@3HA) は既に title.obj で定義されています。

1>fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。


です

ココナ

Re:引数の数について

#5

投稿記事 by ココナ » 14年前

あたっしゅさん

規約を守った投稿をしましょう。
そのような言葉遣いはふさわしくありません。

softya

Re:引数の数について

#6

投稿記事 by softya » 14年前

余計なところで
#define GLOBAL_INSTANCE
しているとしか思えません。

これだけだと再現が難しいので、プロジェクト全体をZIPにして添付してもらえませんか?

たいが

Re:引数の数について

#7

投稿記事 by たいが » 14年前

softyaさんのアドバイスでそれっぽいところを探してみたところ解決しました!
GLOBAL int y=100; が問題だったみたいで、GLOBAL int y;にしたら大丈夫でした

ありがとうございます!

閉鎖

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