MSVC 2008 - eiichiromomma/CVMLAB GitHub Wiki

(MSVC) Visual C++ 2008 EE

Visual C++ 2008 Express Editionについて

インストール

Visual Studio 2008 Express Editions からWebインストール。DVDイメージを拾ってきても良い。

特に躓く所もなし。

内容物

今回からPlatformSDKの一部がBin, Include, Libのみインストールされるようになった。 基本的に.Net関係はWindowsSDKも不要らしく、2005では小細工をしなければ作れなかったフォームアプリも初めから作れる状態になっている。

DirectShowやddrawもヘッダとライブラリが含まれているが、微妙に内容が変わったらしい。 どのみちサンプルソースが無いのでWindowsSDKはあった方が良いと思われる。

再頒布可能パッケージ

msvcr90.dllのランタイムエラー

プロジェクトのプロパティの[リンカ]-[マニフェストファイル]-[追加のマニフェスト依存関係]に以下の内容を追加する。

type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'

バージョン等はdllの置いてある

C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375

のようなフォルダ名に対応している。

afxres.hのエラー

#include <windows.h>

に置き換えるだけで良い。 (変更は自己責任で)

OpenCV 1.xのビルド(普通に使う場合、わざわざやる必要は無い)

cvcamを使わない普通のソリューションはafxres.hのエラーだけで問題無くビルドできる。

cvcam.libを無理矢理ビルド

注意:一応DirectShowデバイスでの動作は確認したが、ライブラリのソースに手を入れる事になるので、変更は自己責任で行なって下さい。特にcvstreams.hはcv.libのソースなので問題が出るかも?

cvcam.rc

#ifndef IDC_STATIC
#define IDC_STATIC      (-1)
#endif

で宣言

//#include "afxres.h"
#include <windows.h>

cvcam.cpp

ヘッダ周り

//#include <streams.h>
#include <mediaobj.h>
#include <DShow.h>
#include <dmort.h>
//#include "afxres.h"

DeleteMediaType(pmt);

MoDeleteMediaType((DMO_MEDIA_TYPE*)pmt);

に置き換え。

ASSERT

を _ASSERT に置き換え。

cvcamavi.cpp

#include <DShow.h>
//#include <streams.h>

cvstreams.h

//#include <streams.h>  /* !!! IF YOU'VE GOT AN ERROR HERE, PLEASE READ BELOW !!! */
#include <mediaobj.h>
#include <DShow.h>
#include <dmort.h>

リンカエラー

プロジェクトでの追加の依存ファイル

STRMBASe.LIB

msdmo.lib strmiids.lib

に置き換え。

⚠️ **GitHub.com Fallback** ⚠️