こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

 OpenCV2.1.0でのコンパイルエラーについて、質問があります。

 OpenCV2.1.0でのコンパイルエラーについて、質問があります。

 初心者で至らない点があるかと思いますが、ぜひ回答よろしくお願いします。

 動画キャプチャを再生するプログラムを作ろうと、DirectXを利用しています。
 (Visual C++ 2010 expressを使っています)

 インクルードファイルでの<cv.h>や<dshow.h>は、Microsofot windows SDK 6.1
 やOpenCv2.1.0をインストールして、VC++ディレクトリ中の

  インクルードファイル(*.h)は
   c:\OpenCV2.1\include\opencv
  ラ イブラリファイル(*.lib)は
   c:\OpenCV2.1\lib
  ダイナミックリンクライブラリ ファイル(*.dll)は
   c:\OpenCV2.1\bin  (これは、”実行可能なファイル"のところへ)

 設定して、コンパイルエラーは出ないようになりました。

 しかし、
  「インクルードファイル(*.h)は  c:\OpenCV2.1\include\opencv」

 の処置のおかげで、同一フォルダに入っている

  「cxtypes.h」と「cxoperations.hpp」の二つで、下記のようなコンパイルエラーが出ます。


  エラーメッセージ

> error C3862: /clr:pure または /clr:safe を伴うアンマネージ関数を
  コンパイルできません  インラインのネイティブ アセンブリはマネージ コードで
  サポートされていません

>error C3645: : __clrcall は、ネイティブ コードにコンパイルされた関数
 では使用できません


 上のエラーから、clrの問題と考えて、.NET .Freamework 4.0(x68)を
 新しくインストールしましたが、上のエラーが解決せず、コンパイルできません。

 VC++ディレクトリ中のリンカーは、
    strmiids.lib
    cv.lib
    cxcore.lib
    highgui.lib
    dxerr.lib
    dxguid.lib
    d3dx9.lib
    d3dx10.lib
    d3d9.lib
    winmm.lib
    comctl32.lib
    strmbase.lib
 にしました。

 コンパイルエラーを解決する方法をご教示くださると、大変幸いです。
 よろしくお願いします。

投稿日時 - 2010-07-18 04:27:43

QNo.6046093

困ってます

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

とりあえず原因の一つに。
プロジェクトをCLRで作られていると思いますが、デフォルト設定ではポインタなどのアンマネージコードを使うことができません。
そのため、
 プロジェクトのプロパティで、構成プロパティ→全般→共通言語ランタイムサポート
の設定を
 純粋MSIL共通言語ランタイムサポート(/clr:pure)
  から
 共通言語ランタイムサポート(/clr)
に変更してみて下さい。

投稿日時 - 2010-07-19 10:29:54

お礼

 ありがとうございます。初期設定で、共通言語の設定が
 /clr/pureになっていました。そこを変更すると、warningが
 大量に出ますが、解決しました。

  int main()で、window画面を立ち上げて、.AVIファイルを
 流すプログラムを作成し、設定が生きているかをチェック
 しましたが、問題ありませんでした。

  ただし、form上で動画を再生する用に設定する方法に
 ついては、別途調査していく必要がありました。
 
  回答は大変参考になりました。ありがとうございました。

投稿日時 - 2010-07-19 19:17:52

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)