• ベストアンサー

C++からCに直したい

下のソースを用いようと思ったのですが、C++で書かれているため、Cで使えるようにしたいです。 iostreamを消すと表示が真っ白になりますし、良く分かりません。 どこをどのように変えたら動くのでしょうか。 分かる方、よろしくお願いします。 http://wiki.livedoor.jp/mikk_ni3_92/d/OpenCV%a4%c8%a5%c6%a5%af%a5%b9%a5%c1%a5%e3%ba%ee%c0%ae

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

お疲れ様です。 まず断っておきますが、私にはOpenCVの環境がないため確認出来ていません。 推測で答えますので、よろしくお願い致します。 まず、C言語にはbool型が標準では無いようです。 (参照URLを参考にして下さい。) よって、自作でbool型を作るなどして下さい。 (以下は例) #define bool char #define false (0) #define true(!0) その次に、C++では引数の省略は暗黙的にvoidですが、C言語では引数が何も無い時はvoidを指定しなければいけません。 よって、「display」関数はプロトタイプ宣言および実体の引数宣言にvoidを指定する必要があります。 これでも駄目な時は、またお知らせ下さい。 以上 よろしくお願い致します。

参考URL:
http://seclan.dll.jp/c99d/c99d05.htm
negative-X
質問者

補足

ご回答ありがとうございます。 #define true(!0) の!0がエラーになったため#defineで別に!0を定義したところ、正しい動作を確認できました。 ありがとうございます。 次の警告が出たのですが .c(60) : warning C4113: 'void (__cdecl *)()' はパラメータ リストが 'void (__cdecl *)(void)' と異なります。 これを直す方法はありますか。(きちんと動くので無視しても良いのかもしれませんが) お時間が宜しければ、教えていただけませんか。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

>> 次の警告が出たのですが >> .c(60) : warning C4113: 'void (__cdecl *)()' はパラメータ >> リストが 'void (__cdecl *)(void)' と異なります。 >> これを直す方法はありますか。(きちんと動くので無視しても >> 良いのかもしれませんが) 前にも記載していますが、宣言文を変更すれば良いかと。 void display(); ↓ void display(void) 関数の実体も同じように修正 以上 よろしくお願い致します。

negative-X
質問者

お礼

ご回答ありがとうございます。 確かに警告がなくなりました。 解決できました。 説明不足等でご迷惑をお掛けしたと思いますが、何度もありがとうございました。 No.4のご回答を良回答とさせていただきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

お疲れ様です。 失礼ですが貴方の文章からは、どこまでがうまくいって、どこからがうまくいかないのか判断に苦しみます。 結局、テクスチャに画像は貼り付けられたのでしょうか? 前にも記載しましたが、参照先のURLのソースコードを見る限りは、「iostream」と「std::cerr」以外はC++でないとコンパイルされないコードは無いように見えます。 Cでコンパイルした場合に、どんなエラーになるのでしょうか?

negative-X
質問者

補足

ご回答ありがとうございます。 説明不足で申し訳ありませんでした。 C++では画像を貼れましたが、Cでは出来ていません。 Cでiostreamとstd::cerrをコメントアウトして実行した場合、次のエラーがでます。 .c(17) : error C2061: 構文エラー : 識別子 'LoadGLTextures' .c(17) : error C2059: 構文エラー : ';' .c(17) : error C2059: 構文エラー : ')' .c(53) : warning C4113: 'void (__cdecl *)()' はパラメータ リストが 'void (__cdecl *)(void)' と異なります。 .c(61) : warning C4013: 関数 'LoadGLTextures' は定義されていません。int 型の値を返す外部関数と見なします。 .c(61) : error C2065: 'false' : 定義されていない識別子です。 何度もすみませんが、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

そもそも、「コンパイルエラーが出るからC++からCに変えたい」というのが間違いなような気がします。 参照先のURLでcstdioやcstdlibを使用している箇所はありませんでした。 もう少し詳細なエラー内容の提示をお願いします。(どのソースのどの行など) そもそも、"test.jpg"は実行ファイルと同じフォルダに置いてあるのでしょうか? また、"test.jpg"が真っ白な画像である可能性はないでしょうか? 以上 よろしくお願い致します。

negative-X
質問者

補足

ご回答ありがとうございます。 >「コンパイルエラーが出るからC++からCに変えたい」 わけではなく、Cで組んでいるプログラムに組み込みたいため変換にしたいのです。 >もう少し詳細なエラー内容の提示をお願いします。 申し訳ありません。初歩的なミスで、現在C++での動作を確認しました。やはり、読み込んだ画像が回転している四角形に貼り付けられる内容でした。 前述のように、Cに組み込みたいのですが、どこをどう変えたら良いのでしょうか。 ご回答よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

お疲れ様です。 OpenCVが手元に無いため分かりませんが、パッと見た限りC++に依存したコードは「std::cerr」しかありませんでした。 そもそも、リンク先のホームページのソースコードを実行するとどんな画面が表示されて、それがどう表示されないのか記載されるべきだと思うのですが。。。 その前に、OSやコンパイラが分かりませんし。。。

negative-X
質問者

補足

ご指摘ありがとうございます。 OSはXPでVisual C++ 2008 Express Editionを使用しています。 ソースを実行しようとするとcstdioとcstdlib(iostreamで使用?)で  構文エラー : '{' が ':' の前にありません。  構文エラー : ':' となり(原因不明)、結果は確かめられていませんが読む限りでは 「読み込んだ画像をテクスチャとして、(回転している)四角形に貼り付けている」はずです。 エラー元と思われるiostreamを消して実行すると、画像が貼り付けられることなく、白いままの四角形が回転している状態です。 宜しければ、ご回答お願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 令和初の「嫌いな女」王者決定 !

    >最も“嫌い”の声を集めたのは、古希目前の和田アキ子 読んでいて納得しましたが、 今、日本でもっとも嫌われている女とは──? みなさんにとっては誰なんでしょうか ? https://www.msn.com/ja-jp/entertainment/celebrity/%E4%BB%A4%E5%92%8C%E5%88%9D%E3%81%AE%E3%80%8C%E5%AB%8C%E3%81%84%E3%81%AA%E5%A5%B3%E3%80%8D%E7%8E%8B%E8%80%85%E6%B1%BA%E5%AE%9A%E3%80%811433%E4%BA%BA%E3%81%AE%E5%A5%B3%E6%80%A7%E3%81%8C%E7%89%A9%E7%94%B3%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%AF%E3%82%BA%E3%83%90%E3%83%AA/ar-AABf6pp#page=2

  • ヤァ~イ、御前の母ちゃん(赤)出臍

    http://ansaikuropedia.org/wiki/%E3%81%8A%E5%89%8D%E3%81%AE%E6%AF%8D%E3%81%A1%E3%82%83%E3%82%93%E5%87%BA%E3%83%99%E3%82%BD 此の言葉の出所・出自等、御存知の方、御教示御願い致します+平成生まれは知ってるのかなぁ ?

  • C++でのEKF SLAMについて

    Visual C++ 2008で EKF SLAMのシミュレーションを行っております. 「確率ロボティクス(http://www.amazon.co.jp/%E7%A2%BA%E7%8E%87%E3%83%AD%E3%83%9C%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9-ROBOT-books-Sebastian-Thrun/dp/4839924015)」 に書かれているEKF SLAMアルゴリズムの項を参考に プログラムを組んでいますがどうにもうまくいきません. 具体的には,ロボットが新しいランドマークを認識したとたん, ロボット姿勢の推定値が狂い,はるか彼方へ飛んで行ってしまいます. 記述とは何度も突き合わせてみたのですが,間違っているところが見つからず困っております. ソースコードを含むプロジェクトフォルダを以下にアップロードしますので,よろしければ ご指摘くださると幸いです. (表示にOpenCV2.2を使っています.またダウンロードパスは"pass"です) http://www5.puny.jp/uploader2/download/1307532699.zip

  • ローマ教皇

    http://ja.wikipedia.org/wiki/%E5%85%A8%E3%81%A6%E3%81%AE%E6%95%99%E7%9A%87%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%A4%A7%E5%8F%B8%E6%95%99%E8%81%96%E3%83%9E%E3%83%A9%E3%82%AD%E3%81%AE%E9%A0%90%E8%A8%80#.E3.80.8E.E7.94.9F.E5.91.BD.E3.81.AE.E6.9C.A8.E3.80.8F.E3.81.A7.E3.81.AF.E4.BA.88.E8.A8.80.E3.81.AE.E3.81.BF.E3.81.8C.E7.A4.BA.E3.81.95.E3.82.8C.E3.81.A6.E3.81.84.E3.81.9F.E6.AE.8B.E3.82.8A.E3.81.AE37.E4.BA.BA.E5.88.86.E3.81.A8.E6.9C.80.E5.BE.8C.E3.81.AE.E6.95.A3.E6.96.87 の112?はどういう意味なのでしょうか。この預言は偽書なのでしょうか。

  • 韓国人のダブルスタンダード

    韓国人は従軍慰安婦で日本を責めますがすでに論理破綻していますよね? 動画をご覧になってください。 ライタイハン http://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%82%BF%E3%82%A4%E3%83%8F%E3%83%B3 朝鮮進駐軍 http://anond.hatelabo.jp/20100131154721 在日本朝鮮人連盟 http://ja.wikipedia.org/wiki/%E5%9C%A8%E6%97%A5%E6%9C%AC%E6%9C%9D%E9%AE%AE%E4%BA%BA%E9%80%A3%E7%9B%9F 歴史的事実であるこれらの事件から鑑みて これは韓国人のダブルスタンダード+捏造による日本批判ではありませんか?

  • 由来に関する酷く拙い愚問です。

    トランザクション処理の「アトミック性(http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%88%E3%83%9F%E3%83%83%E3%82%AF%E6%80%A7)」の発想は、不確定性原理(http://ja.wikipedia.org/wiki/%E4%B8%8D%E7%A2%BA%E5%AE%9A%E6%80%A7%E5%8E%9F%E7%90%86)から派生しているのでしょうか?

  • 県庁所在地で一番人口の少ない都市

    県庁所在地で一番人口の少ない都市は山口県の山口市で 間違いないでしょうか? ↓で確認しましたが、山口の19万が一番少なそうです。 http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E3%81%AE%E5%B8%82%E3%81%AE%E4%BA%BA%E5%8F%A3%E9%A0%86%E4%BD%8D

  • PANG (航空母艦)の造船開始年と設計図完成年は

    (⇩)下記の URL の『PANG (航空母艦)』の wiki の頁には、 https://ja.wikipedia.org/wiki/PANG_(%E8%88%AA%E7%A9%BA%E6%AF%8D%E8%89%A6) https://ja.wikipedia.org/wiki/PANG_(%E8%88%AA%E7%A9%BA%E6%AF%8D%E8%89%A6) https://ja.wikipedia.org/wiki/PANG_(%E8%88%AA%E7%A9%BA%E6%AF%8D%E8%89%A6)#%E6%A6%82%E8%A6%81 https://ja.wikipedia.org/wiki/PANG_(%E8%88%AA%E7%A9%BA%E6%AF%8D%E8%89%A6)#%E6%A6%82%E8%A6%81 『概要』の所に、 。2025年に最初の鋼材切出しを行い、海上公試は2036年開始と、建造に10年以上をかける計画で、2038年の就役が予定されている[2]。 と書かれています。 質問です。 2025年に最初の鋼材切出しを行い、 という事は、 ① 造船開始が2025年 という事でしょうか? ② 設計図は、2025年よりも前に完成するのでしょうか? 以上の事を教えてください。

  • 京王新線の初台~新宿間の新駅

    http://ja.wikipedia.org/wiki/%E8%A5%BF%E6%96%B0%E5%AE%BF%E4%B8%89%E4%B8%81%E7%9B%AE%E8%A5%BF%E5%9C%B0%E5%8C%BA%E5%86%8D%E9%96%8B%E7%99%BA こちらを見ると、新駅が建設されるみたいですが、 地下の営業中の路線に新駅を作ることは出来るのでしょうか? どうせ作るのなら、京王線に新駅を作ったほうが良いと思うのですが。

  • 女性生殖器のサイズ

    wikipediaによりますと、 ヒトの陰茎は、他のどの霊長類のそれよりも、絶対的な語義でも身体の残りに比べての相対的なサイズにおいても、より長く、より太い。 http://ja.wikipedia.org/wiki/%E3%83%92%E3%83%88%E3%81%AE%E9%99%B0%E8%8C%8E%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA#.E9.99.B0.E8.8C.8E.E3.81.AE.E3.82.B5.E3.82.A4.E3.82.BA.E3.81.A8.E8.86.A3.E3.81.AE.E5.8F.8D.E5.BF.9C とのことですが、女性生殖器についても、 他のどの霊長類のそれよりもより深く、より広いのでしょうか?