- ベストアンサー
コンパイルエラーについて
- 現在、大学でステッピングモーターの制御について学んでいます。コンパイルエラーについてお力をお貸しいただけたら幸いです。
- Windows7およびVC++6.0を使用して、ステッピングモーターの制御プログラムを作成しています。
- コンパイルエラーが発生しており、エラーメッセージは型の指定や識別子の未定義などの問題が報告されています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ひとまずこんな感じでしょうか。 ///Motorprogram #include "Svcpp.h" #define JOG_P 0x32;//定速連続+方向の定義 int sub() { bool flag; ///X軸(定速連続+方向) flag=ppd3test('X','+');//動作可否の判断 if(!flag) { w_p234.axis ='X'; w_p234.cmd = JOG_P;//定速連続+方向 w_p234.spd = 25;//25pps flag = hp234_writ(&w_p234);//動作開始指令 } return(1); } そのままだとやっぱりエラーなのは意図的です。 とはいうものの、妙な点があります。 質問文の通りならば 「'ppd3test' : 定義されていない識別子です。」 というエラーは出ないのが正しいようですが??
その他の回答 (3)
- shouko0918
- ベストアンサー率66% (2/3)
こんにちは。 いろいろ突っ込みたいところはありますが、1つだけ確認です。 #include "Svcpp.cpp" とありますが、ヘッダーのインクルードが間違っているという事はないでしょうか? #include "Svcpp.h" とか・・・一応確認です。(^^;;
お礼
回答ありがとうございます。 #includeは実際にボードのアドレスや基本情報を詰め込んであるもので、添付のソフトウェアについていたものです。 形がやはりめちゃくちゃなのですね。 説明不足で申し訳ないです。
- ichhabehunger
- ベストアンサー率55% (27/49)
こんにちは。 コードの一部だけ出されても。 「flag」の定義はどこで? 「w_p234」は「Svcpp.cpp」の中で Static に定義されているのですか? まぁ、とにかくでたらめなコードですね。
お礼
勉強不足で申し訳ありません。 flagはやはり定義してあげないといけないのですね。 w_p234についてはSvcpp.cppの中で定義されているので問題ないと考えています。 動作を検証したいのでなるべくシンプルな構造で作りたかったのですが、形がめちゃくちゃなのですね。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
...まともなコードには見えません。 if(!flag){ ... } が関数のスコープ内に収まっていませんので。
お礼
回答ありがとうございます。 flagの内容は動作可否の判断ですが、それをコメントアウトすればif文についてもカットしてしまっても大丈夫なのでしょうか? とにかく動作するかどうかということに重点をおいています。
お礼
回答ありがとうございます。 flagが定義できたので、エラーが減りました。 ///Motorprogram #define USE_MOTOR #ifdef USE_MOTOR #include "Svcpp.cpp" Hppd234 Hp; #endif short hp234_jog_p (short,short,short,long); /* No.19 */ void init(); /* HLS-PPD234Wxx initialize */ void x_set_orgn(); /* X axis origin set */ void y_set_orgn(); /* Y axis origin set */ void z_set_orgn(); /* Z axis origin set */ void u_set_orgn(); /* U axis origin set */ void set_orgn(short); int sub() { bool flag; ///X軸(定速連続+方向) // flag=ppd3test('X','+');//動作可否の判断 // if(!flag) void Hppd234::set_orgn(short axis) { short mode; w_p234.axis ='X'; w_p234.cmd = JOG_P;//定速連続+方向 w_p234.spd = 25;//25pps flag = hp234_writ(&w_p234);//動作開始指令 } return(1); } motor-2011.cpp C:\~\motor-2011.cpp(26) : error C2601: 'set_orgn' : ローカル関数の定義が正しくありません。 cl.exe の実行エラー 少し改良したら新たなエラーが出てしまいました。。 ちなみにppd3の問題は解決してないのですが、とりあえず動作を確認したいのでコメントアウトしました。 set_orgnについて定義できていないということのなのでしょうか??