VS2005

ConmanClient2 が重大なエラーで強制終了しちゃうときは

CEデバイス用のプログラムをVisual Studioから動かそうとしたときに、デバイス側で「アプリケーション ConmanClient2.exe は、重大なエラーが発生したため強制終了する必要があります。」というエラーダイアログがでることがある。 これを閉じると、今度はVS…

DirectShow の勉強をしよう

DirectShow 開発のイロハを解説したいいブログを教わりました。 imageryBlog http://www.firefly-vj.net/imagery/index.php?catid=8 http://www.firefly-vj.net/imagery/?itemid=183 http://www.firefly-vj.net/imagery/?itemid=186 この記事にしたがって、…

Microsoft Windows SDK で DirectShow フィルタを開発するには

いきなりですが、Platform SDK は Windows SDK に移行しました。 SDK 付属の DirectShow サンプルは、VS2005 に対応してるし、別に DirectX SDK をインストールする必要もなくなったようです。(DirectX SDK をアンインストールして確かめたわけではないが)…

CAxWindow を使って Debug Assertion Failed が出たときは

CAxWindow を使ったプログラムを実行したら、いきなり Debug Assertion Failed が出た。 発生箇所は altcom.h の3898行で、メッセージは「!InlineIsEqualGUID(*m_plibid,GUID_NULL) && "Did you forget to pass the LIBID to CComModule::Init?"」……よくわか…

CEデバイスを起動するたびにメモリスライダーをいじるのが嫌になったときは

SetSystemMemoryDivision APIを呼べばいいと聞いて VB プログラム書いたのだけど、CE 6.0 ではこのAPIは obsolute なんだってさ。ネットで見つけたソースをぱっと実装すると、思わぬところでつまづく教訓。今回解決はないので代わりのAPI知ってる人がいたら…

Platform SDK の DirectShow サンプルをビルドするには

DirectShow はもともと DirectX の一部でしたが、その後分離され、Platform SDK の機能になりました。継子扱いってわけでもないでしょうが、Platform SDK にあるサンプルをそのまま nmake でビルドすると、ヘッダファイルが見つからないとエラーが出ます。 …

CE用の ATL ウィザードでハマッたときは

ATL/WTL AppWizard for Windows CE を使ってコード生成すると、こういうエラーが出る。 1>c:\wtl80\include\atlapp.h(154) : error C2084: 関数 'HRESULT ATL::CComModule::RegisterClassObjects(DWORD,DWORD) throw()' は既に本体を持っています。 1> C:\Pr…

comdef.h の lstrlen が構文エラーになるときは(改)

コンパイラの出すエラーメッセージが、どこのどういう記述に起因し、どう修正すればいいのかを解読するのは、いつになっても難儀なものです。 1>C:\Program Files\Microsoft Visual Studio 8\VC\ce\include\comdef.h(240) : error C2589: '(' : スコープ解決…

ゾンビ対夕陽のプログラマ

Visual Studio 2005 + WTL 8.0 で、「WTL Mobile Appilication Wizard」プロジェクトの新規作成を、何度やっても「目的のファイルがゾンビ状態にあるため、そのデータにアクセスできません」という奇っ怪なダイアログが出る。 途方にくれたが、「ATL/WTL App…

デバッグしたいコードにブレークポイントが設定できないときは

まずプロジェクトのプロパティで、構成プロパティ - リンカ - デバッグ の、「デバッグ情報の生成」がいいえになってないか確認しろ。ソリューション構成「Debug」でなんでデバッグ情報がいいえなのかさっぱりわからないけれど、とにかくそういうことがある…

Boehm GC を Windows Mobile 6 用にコンパイル

C++ 用のガベージコレクタ Boehm GC を WM6 用にコンパイルします。 (WM6 エミュレータにコンソールをインストールする必要があります: 昨日の記事参照)(修正: CE_MAKEFILE で、gc.lib とヘッダファイルのインストール先、それにプロジェクトの追加のイン…

Windows Mobile 6 エミュレータでコンソールを使う

Visual Studio 2005 では、Windows Mobile 6 のエミュレータを使って開発できますが、コンソールがないため開発が不便です。以下の方法でWM6にコンソールを追加します。ホストとなる PC、エミュレータのウインドウ、エミュレートされているデバイスと、3つ…