ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

error C2787 このオブジェクトに関連付けられた GUID はありません。

IFileDialogやIFileOpenDialogを使おうとしたら、「error C2787 このオブジェクトに関連付けられた GUID はありません。」というコンパイルエラーが出た。

原因は、元のソフトがWindowsXp以降で動作するようにしていたため。上記インターフェースは、WindowsVista以降でしか使えないのだ。

どのバージョン以降を動作対象にするか指定しているのは、stdafx.hの以下の箇所。

 

gist.github.com

 

 0x0501はWindowsXp以降を動作対象とする設定なので、これをVista以降となる0x0600に書き換えてやる。

 

gist.github.com

 

これでコンパイルが通るようになった。

2018/06/23追記

WINVER等とWindowsバージョンの関係は、下記に公式情報がある。

Using the Windows Headers (Windows)

英語だが、各表右上の"Value for なんとか"という部分に、どの定数に関する表か書いてある。