[error:C2440]コンパイルエラーを回避するには?

解決


おにさん  2012-07-03 17:20:53  No: 73451  IP: 192.*.*.*

こんにちは、コンパイルエラーが出て解決できません。

Microsoft Visual C++ 2008において
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BOOL (CDC::*pfun)(LPPOINT, int) = &CDC::Polygon;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

上記の記述で、下記のエラーでます。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
error C2440: '初期化中' : 'BOOL (__thiscall CDC::* )(const POINT *,int)' から 'BOOL (__thiscall CDC::* )(LPPOINT,int)' に変換できません。
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Microsoft Visual C++ 2003では、エラーなかったようです。

エラーの回避方法教えてください。
初心者ですいません。

編集 削除
Blue  2012-07-03 17:40:07  No: 73452  IP: 192.*.*.*

なんかMSDNが違う?
>>http://msdn.microsoft.com/ja-jp/library/hhkhd4xz%28v=vs.90%29.aspx
だと、

BOOL Polygon(
   LPPOINT lpPoints,
   int nCount 
);

とあるようですが、
実際にCDC::Plygonの宣言(afxwin.h)をみると
>  BOOL Polygon(const POINT* lpPoints, int nCount);
のようです。

BOOL (CDC::*p)(const POINT*, int) = &CDC::Polygon;

にすればコンパイルは通りそう。

2003の宣言はどうなのかはわからぬ。

編集 削除
おにさん  2012-07-04 09:06:58  No: 73453  IP: 192.*.*.*

おはようございます
Blueさん、ありがとうございます。
今情報をみましたが、昨日即返答していただいていたようですね!!。
感謝いたしまします。

私は、1日調べてもわからなかったの・・・。

本当にありがとうございます。
無事解決しました。

編集 削除