- ベストアンサー
PROCのコンパイルエラーの取り方がわかりません
ソース自体が長いので問題となっている所だけ書きます。 情報量が少なくて申し訳ありませんが…。 VC環境です。 /* define定義 */ #define IF_ITEM_CNT 14 ・ ・ ・ /* 内部関数プロトタイプ宣言 */ int AnalyzeProc( char **pReturnString, char *pTargetString, int StrNum, char String ); /* 文字列分解処理を行う関数 */ ・ ・ ・ /* グローバル変数宣言 */ char In_Rec[ IN_FILE_MAX_LEN + 1 ]; char *w_In_Rec[ IN_ITEM_CNT + 1 ]; ・ ・ int Main{ ・ ・ ・ } int MainProc{ ・ ・ strncpy( g_dn03_rec.DN03_KISYU_MEI, sizeof( g_dn03_rec.DN03_KISYU_MEI ), w_In_Rec[ 10 ], DN03_KISYU_MEI ); ・ ・ M_Res = AnalyzeProc( &w_IN_Rec, In_Rec, IF_ITEM_CNT, ',' ); ・ addSpeace( 0, 0, DN03_KISYU_MEI_LEN, _dn03_rec.DN03_KISYU_MEI ); ・ ・ return ( TRUE ); } となっているのですが、エラーが出ます。 Warning C4047 : '関数' : 内接参照のレベルが 'char **' と 'char *(*)[15]' で異ります。 Warning C4024 : 'AnalyzeProc' この型が 1 の仮引数および実引数と異なります。 Warning C4013 : 関数 'addSpace' は定義されていません。int型の値を返す外部関数と見なします。 あとリンクのエラーで error : LNK2019 : 未解決の外部シンボル _addSpeace が関数 _MainProc で参照されました。 fatal error LNK1120: 外部参照 1 が未解決です。 というエラーが出るのですがどう直していいかわかりません。 Warning C4047も型が違うのはわかるんですがどうすればいいのか…。 Warning C4013は前にこのエラーが出たときはプロトタイプ宣言することでエラーは無くなったんですが、 今回のは違うみたいです。宣言の仕方が悪かったのかもしれませんが。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
- chie65536(@chie65535)
- ベストアンサー率44% (8812/19983)
- Tacosan
- ベストアンサー率23% (3656/15482)
補足
早速の回答ありがとうございます。 >関数を呼び出す時の、 >パラメタは、宣言した通りの型を使って呼び出しましょう。 &w_IN_Rec の部分をどのようにしたら char **になるんでしょうか? 現行ではこれで通っていたようなので余計にわからなくなってます。 これだけの情報じゃさすがに難しいとは思いますが。 >プロトタイプを宣言して、コンパイルの警告は、回避したつもりのようですが、 これについては他のプログラムの改修中、VCの警告レベルを3に上げた際に MainProcなどの関数がMain関数の下にあったため上記のエラーがでてプロトタイプ宣言で解決しました。 今回のエラーと同じエラーでも意味が違うということですか?