• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:適切な変換関数が存在しない???)

適切な変換関数が存在しない???

このQ&Aのポイント
  • C++の構造体で困っています
  • 印刷領域のカレントポジションを原点に戻すとともに、それ以前のカレントポジションを知ろうと思い以下のようなプログラムを書きました
  • MyPoint.xとMyPoint.y には9999ではなく、現在のカレントポジションが入るという単純なものです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

> 色々調べましたらC++のコンパイラの設定に関連するエラーらしいです 違います。関数の呼び出し方が間違っていることを表すエラーです。 Windows 関連の C/C++ で LP~ で始まる型を見たら ~ 型のポインタを意味するものと考えてまず間違いないです。今回の場合は POINT 型のポインタを要求されているところに POINT 型そのものを渡しているために問題のエラーが発生しています。 したがって、今回の場合は bool rtn = MoveToEx(hdc, 0, 0, &MyPoint); としてやれば OK ……とはなりません。このコード片にはそれ以外の問題があるからです。 (1)なぜ POINT 型を自分で定義しているのでしょうか? この関数が要求しているのは windef.h で定義されている POINT 構造体のはずで、この関数を使用するために windows.h をインクルードしていれば使えるはずです。 http://msdn.microsoft.com/ja-jp/library/8kk2sy33.aspx (2)この関数の戻り値の型は C++ の bool 型ではなく Windows SDK で定義されている BOOL 型です。実験してみたところ VC++ では問題なく変換できるようですが、型は合わせたほうが安心でしょう。

sato-may
質問者

お礼

ありがとうございます 良くわかりました  ・・・・・ と思います テストしてみたらOKでした お世話になりました

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

BOOL MoveToEx( HDC hdc, // デバイスコンテキストのハンドル int X, // 新しい現在の位置の x 座標 int Y, // 新しい現在の位置の y 座標 LPPOINT lpPoint // それまでの現在の位置 ); http://msdn.microsoft.com/ja-jp/library/cc410478.aspx という定義ですから、 bool rtn = MoveToEx(hdc, 0, 0, MyPoint); 第4パラメーターはMyPoint(POINT型)ではなく、LPPOINTでなければなりません。

sato-may
質問者

お礼

ありがとうございます LPLPOINTに致しました うまくいきました ありがとうございました

関連するQ&A