Visual C++ ソリューション (2005) をビルドすると、次の警告が表示されます。
1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(678) : 'ImageList_Read' の以前の定義を参照してください
1>e:\xml parse\development\gui\h\wtl4mfc.h(6): 警告 C4273: 'ImageList_Write': 一貫性のない dll リンク
1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(679) : 'ImageList_Write' の以前の定義を参照してください
1>e:\xml parse\development\gui\h\wtl4mfc.h(8): 警告 C4273: 'ImageList_ReadEx': 一貫性のない dll リンク
1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(686) : 'ImageList_ReadEx' の以前の定義を参照してください
1>e:\xml parse\development\gui\h\wtl4mfc.h(9): 警告 C4273: 'ImageList_WriteEx': 一貫性のない dll リンク
1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(687) : 'ImageList_WriteEx' の以前の定義を参照してください
これら 2 つのファイルを確認すると、次のことがわかります。
****wtl4mfc.h で ****
extern "C" { HIMAGELIST WINAPI ImageList_Read(LPSTREAM pstm); BOOL WINAPI ImageList_Write(HIMAGELIST himl, LPSTREAM pstm);
#if (_WIN32_WINNT >= 0x0501) HRESULT WINAPI ImageList_ReadEx(DWORD dwFlags, LPSTREAM pstm, REFIID riid, PVOID* ppv); HRESULT WINAPI ImageList_WriteEx(HIMAGELIST himl, DWORD dwFlags, LPSTREAM pstm);
#endif };
commctrl.hファイルには、次のように表示されます。
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Read(__in struct IStream *pstm); WINCOMMCTRLAPI BOOL WINAPI ImageList_Write(__in HIMAGELIST himl, __in struct IStream *pstm);
私は Visual C++ の初心者で、これは私が維持できるコードからのものです。これらの警告を削除するにはどうすればよいですか? Winddk の下位バージョンがインストールされているコードをビルドすると、これらの警告は表示されません。
これらの警告の原因は何ですか? どうすれば削除できますか?