Programing Tips(VC++)
いくつかのTips、間違った対処法かもしれませんが…。
目次
1.__field_ecount_opt
2.__range
3.::TrackMouseEvent(&p1)
4.::SHCreateDirectory(p1,p2)
5.fatal error C1007: '-typedil' (オプション 'p2' 中) は認識できません。
__field_ecount_opt(p1) LPBYTE p2 で次のようなエラーが出る。
amfilter.h(1217) : error C2061: 構文エラー : 識別子 'p1' amfilter.h(1217) : error C3646: 'LPBYTE' : 不明なオーバーライド指定子です amfilter.h(1217) : error C3646: 'p2' : 不明なオーバーライド指定子です amfilter.h(1217) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません amfilter.h(1217) : warning C4183: '__field_ecount_opt': 戻り値の型がありません。'int' を返すメンバ関数とみなします。 |
対策
#define __field_ecount_opt __ecount_opt |
を定義する。
__range(a,b) LONG p1で次のようなエラーが出る。
outputq.h(113) : error C2059: 構文エラー : '定数' outputq.h(113) : error C3646: 'LONG' : 不明なオーバーライド指定子です outputq.h(113) : error C3646: 'p1' : 不明なオーバーライド指定子です outputq.h(113) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません outputq.h(113) : warning C4183: '__range': 戻り値の型がありません。'int' を返すメンバ関数とみなします。 |
対策
#define __range( p1, p2 ) |
を定義する。
::TrackMouseEvent(&p1) で次のようなエラーが出る。
sample.cpp(n) : error C2039: 'TrackMouseEvent' : '`global namespace'' のメンバではありません。 sample.cpp(n) : error C3861: 'TrackMouseEvent': 識別子が見つかりませんでした。 |
対策
#define _WIN32_WINNT 0x0500 |
を定義する。
::SHCreateDirectory(p1,p2)で次のようなエラーが出る。
sampel.cpp(n) : error C2039: 'SHCreateDirectory' : '`global namespace'' のメンバではありません。 sample.cpp(n) : error C3861: 'SHCreateDirectory': 識別子が見つかりませんでした。 |
対策
#define _WIN32_IE 0x0601 |
を定義する。
Visual Studio C++2005でコンパイル時に次のエラーが出る。
fatal error C1007: '-typedil' (オプション 'p2' 中) は認識できません。 LINK : fatal error LNK1257: コードの生成に失敗しました。 |
原因
VC++2008でコンパイルされた非対応のライブラリをVC++2005で使用した。 |
Comments