Re: 関数のリンクエラーについて ( No.1 ) |
- 名前:管理人 日時:2014/10/12 02:14
エラーで報告されている WriteSubstring という関数のプログラムは
何というファイル名のファイルに書かれていますか?
|
Re: 関数のリンクエラーについて ( No.2 ) |
- 名前:やまひこ 日時:2014/10/12 13:53
GameProg というファイルに保存しています
|
Re: 関数のリンクエラーについて ( No.3 ) |
- 名前:管理人 日時:2014/10/12 14:01
一応確認です、GameProg.cpp ですか? それとも GameProg.h ですか?
|
Re: 関数のリンクエラーについて ( No.4 ) |
- 名前:やまひこ 日時:2014/10/12 14:28
GameProg→GameProg→main.cpp というファイル構成です。
|
Re: 関数のリンクエラーについて ( No.5 ) |
- 名前:やまひこ 日時:2014/10/12 14:29
このmain.cpp内でエラーが発生します。
なお、実行ファイルは、このmain.cppのみです
|
Re: 関数のリンクエラーについて ( No.6 ) |
- 名前:管理人 日時:2014/10/12 14:55
ん?では WriteSubstring という関数の中身は main.cpp に書かれているということですか?
|
Re: 関数のリンクエラーについて ( No.7 ) |
- 名前:やまひこ 日時:2014/10/12 15:35
そうです。わかりにくくてすみません。
|
Re: 関数のリンクエラーについて ( No.8 ) |
- 名前:管理人 日時:2014/10/12 17:46
なるほど、多分分かりました
今回のエラーは、以下のようなプログラムを書いたことが原因だと思います
例1 宣言と定義で引数の型が異なる
// 宣言
int FunctionA( int Num1, int Num2 );
// 定義
int FunctionA( float Num1, int Num2 )
{
return Num1 + Num2;
}
例2 宣言と定義で引数の数が異なる
// 宣言
int FunctionA( int Num1, int Num2, int Num3 );
// 定義
int FunctionA( int Num1, int Num2 )
{
return Num1 + Num2;
}
というわけで、恐らく
WriteSubstring の宣言に書かれている戻り値の型、引数の数、引数の型と、
WriteSubstring の定義に書かれている戻り値の型、引数の数、引数の型が
異なっていると思いますので、ご確認になってみてください
|
Re: 関数のリンクエラーについて ( No.9 ) |
- 名前:やまひこ 日時:2014/10/12 17:58
上記二つとも確認しましたが、間違いはなく
正しくかけていました。
|
Re: 関数のリンクエラーについて ( No.10 ) |
- 名前:管理人 日時:2014/10/12 19:00
となると、上記のエラーは発生しない筈なのですが・・・
私も確認してみたいので、お手数で申し訳ありませんが WriteSubstring 関数の
宣言と定義の部分を掲示板に貼り付けて頂けないでしょうか?
|
Re: 関数のリンクエラーについて ( No.11 ) |
- 名前:やまひこ 日時:2014/10/12 20:09
//宣言部
void WriteSubstring(char *message,int start,int len,int posX,int posY,int color,int bufferLine);
//messageで指定した文章をstartの位置からlen文字分表示する
void WriteSubString(char *message,int start,int len,int posX,int posY,int color,int bufferLine){
int kaisuu;
int maxLen=strlen(message);
for(kaisuu=0;kaisuu<start && message[kaisuu]!='\0';){
if(isJapaneseCharacter(message[kaisuu])){
kaisuu+=2;
start++;
}else{
kaisuu++;
}
}
if(start>=maxLen){
return;
}
for(kaisuu=0;kaisuu<len && message[start+kaisuu]!='\0';){
if(isJapaneseCharacter(message[start+kaisuu])){
g_messagebuffer[bufferLine][kaisuu]=message[start+kaisuu];
g_messagebuffer[bufferLine][kaisuu+1]=message[start+kaisuu+1];
len++;
kaisuu+=2;
}else{
g_messagebuffer[bufferLine][kaisuu]=message[start+kaisuu];
kaisuu++;
}
}
g_messagebuffer[bufferLine][kaisuu]='\0';
DrawString(posX,posY,g_messagebuffer[bufferLine],color);
}
こちらとなっております
|
Re: 関数のリンクエラーについて ( No.12 ) |
- 名前:管理人 日時:2014/10/12 21:07
ありがとうございます
原因が分かりました
すみません、やまひこさんの場合はこちらの例でした
例3 宣言と定義で関数名が異なる
// 宣言
int FunctionA( int Num1, int Num2 );
// 定義
int functionA( int Num1, int Num2 )
{
return Num1 + Num2;
}
WriteSubstring の場合
WriteSubstring // 宣言
WriteSubString // 定義
どこが異なるか分かりますか?
|
Re: 関数のリンクエラーについて ( No.13 ) |
- 名前:やまひこ 日時:2014/10/12 23:12
ああああああああああ!!!
こんな盆ミスで何時間も、、、、。
わかりました。ありがとうございます。。。
「s」か「S」の違いですよね??
|
Re: 関数のリンクエラーについて ( No.14 ) |
- 名前:管理人 日時:2014/10/12 23:24
はい
|