2011-10-13 16 views
1

私はDirectX 9 On Vs 2008/windows7を使用してサンプルを作成しています。 エラーが発生しています。SHGetFolderPath ':識別子が見つかりません

1> ------ビルドが開始:プロジェクト:VideoCapture、設定:デバッグのUnicodeのWin32 ------ 1>コンパイル...

1> VideoCaptureDlg.cpp
1> 。\ VideoCaptureDlg.cpp(169):エラーC2065: 'SHGFP_TYPE_CURRENT':宣言されていない識別子
1> \ VideoCaptureDlg.cpp(169):エラーC3861: 'SHGetFolderPath':識別子
1が見つかりません> \ VideoCaptureDlg.cpp。 (173):エラーC2065: 'SHGFP_TYPE_CURRENT':宣言されていない識別子
1> \ VideoCaptureDlg.cpp(173):エラーC3861: 'SHGetFolderPath':識別子が見つかりません(int)から 'WORD'への変換、データ消失の可能性あり
1>。\ VideoCaptureDlg.cpp(1180):エラーC2065:エラーC2065:エラーC2065:エラーC2065: 'SHGFP_TYPE_CURRENT':エラーC3861: 'SHGetFolderPath':エラーC2065: 'SHGFP_TYPE_CURRENT':
1> \ VideoCaptureDlg.cpp(1184)が見つかりません識別子宣言されていない
1> \ VideoCaptureDlg.cpp(1180)宣言されていない識別子識別子
1> \ VideoCaptureDlg.cpp(1184):エラーC3861: 'SHGetFolderPath':私はSHLOBJ.Hを追加し、同様にまだそれが同じエラーを示しているshell32.libいる

見つからない識別子。

私は、Windows 7およびInternet Explorer 8に基づいてSTDAFX.Hファイルでマクロを次の値を変更しようとしたが、それは紛争「C1189を_WIN32_IE設定で_WIN32_WINNT設定の競合:#エラー」が表示されている

を参照してください//

をMSDNには、さまざまなプラットフォームの対応する値に関する最新情報が記載されています。

この問題に関するご意見は役に立ちます。

+0

はSTDAFX.Hうん、私は任意の前に設定していますが、ファイル –

+0

そのエラーをトリガした内容に基づいて答えるに移動したコメントが含まれています。 – Richard

答えて

0

問題が解決しました。WINVER = 0x0400; DEBUG; _DEBUG; _WIN32_WINNT = 0x400; WIN32; UNICODE

私はそれを変更することが
_WINDOWSをした前に>

- > C++ - 私はちょうどプリプロセッサは、プロジェクトのプロパティの下の設定変更しました
_WINDOWS; WINVER = 0x0600; DEBUG; _DEBUG; _WIN32_WINNT = 0x600; WIN32; UNICODEは

2

MSDNまたはstdafx.hのコードブロックはありますか?私はちょうど約条件(あなたは以前の設定をオーバーライドしたい)を混乱させることなく、マクロを設定します。また、include(特にwindows.h)の前にそれらを設定していることを確認してください。

エラーメッセージが(ラインsdkddkver.hの263)から来てどこを見て:

#if ((_WIN32_WINNT < _WIN32_WINNT_WIN2K) && (_WIN32_IE > _WIN32_IE_IE60SP1)) 
#error _WIN32_WINNT settings conflicts with _WIN32_IE setting 
#endif 

あなたはあなたがいると思う方法でこれらのマクロを設定していないされています。 (コメントごとなど)

EDIT

私はstdafx.hファイルを起動する(そしてそれは常に最初のヘッダーであることを確認してください。これは、同様に効果的で、プリコンパイルヘッダのために必要とされる)になります。

#define WINVER 0x0601  // Kernel 6.1 == Windows 7/Server 2008 R2 
#define _WIN32_WINNT WINVER 
#define _WIN32_IE 0x0800 // IE8 

#define NOMINMAX   // Don't define min and max (prefer C++ lib) 
+0

を参照してください!私の問題はこのエラーです "エラーC3861: 'SHGetFolderPath':識別子が見つかりませんでした。ネットを検索しました。ターゲットシステムに応じてこれらのマクロの値を変更すると問題が解決しました。対立を与えています。元のエラーの提案 –

+0

マクロを変更する*は、元のエラーの解決策です。 – Puppy

+0

@DeadMgマクロの値は何ですか.OSはWindows 7、IEはIE 8です。 –

関連する問題