MSDNを見ていますが 解りません。それから下記の行を生かすとエラーが出ます。
メンバー変数 m_edit は int型でいいのでしょうか?
if ( pMsg->hwnd == m_edit.GetSafeHwnd() )
> MSDNを見ていますが 解りません。
何がわからないか明確にしないと、誰も答えられないと思います。
m_editはWM_DROPFILESメッセージが送られたコントロールを判別する為に使用しています。
GetSafeHwnd()を調べればint型ではない事がわかると思います。
薫さん、ウィンドウメッセージ(WM_***)は、WPARAM、LPARAMという
2つのパラメータを携えているというのをご存知でしょうか?
これらは、メッセージによって内容は様々で、
何メッセージにはどんな情報がセットされているかはMSDNをみれば解説されてます。
そして、WM_DROPFILESというメッセージのパラメータには、
どんな情報がセットされているでしょうか??
m_editは解りました。WM_DROPFILESにはwParamだと解りましたが?この後どうコーディングす
るかが解らないのです。よろしくお願いします。
> WM_DROPFILESにはwParamだと解りましたが
正確にはWM_DROPFILES時にDragQueryFile関数を使用するにはhDropにはwParamです。
省略して書かれていると思うのですが、これでこの後どうコーディングすればよいか解ったでし
ょうか?
これで解らないと、答えをズバリ書くしかないんですが....。
因みに、みなさん意地悪で教えないのではなくて、薫さんに調べて理解して貰いたいのです。
今、動作すれば良いという考えでは、いつまでもスキルアップしないですから。
薫さん、WPARAMをキャストすればいいんですよ、キャスト。
すみません!答えをずばりお願いします。
> すみません!答えをずばりお願いします。
sugarさんの書き込みがズバリな答えなのですが...(ToT)
出来れば、いまの段階でのソースの提示をお願いします。
ドコでキャストすればよいかとか、言えますので。
薫 2004/01/28(水) 15:43:05 の ページで書かせて頂いたとおりですが宜しく願いします。
エディットの判定は?2004/01/29(木) 12:02:06で、エラーが出ていて、そのあとわかったと
の事ですが。
DragQueryFile関数の第1引数が初期化されていない。
WM_DROPFILESにはwParamだと解った。
wParamはキャストして使う。
これで2004/01/28(水) 15:43:05から1ステップも進めないという事は解っていないという事
だと思います。
何が解ってなくて1ステップもコーディング出来ないのでしょうか?
以前にした質問に答えて戴けていませんが、出来ればお答え戴けないでしょうか
(勿論、答えたくないならそれでいいのですが、答えたく無いとだけでもお知らせ下さい)
----どの程度デバッガーの使い方がお判りなのかが知りたいだけなのです----
>>更に、実行するとだけでなく、何をしたらそのエラーがおきたのか判るように示して下さい
>>
>>ところで、デバッグバージョンで実行してみたのですか、リリースバージョンで実行して
>>みたのですか?
>>エラーが出たことはどこに何が出たのでわかったのですか?
すみません。デバッガーの使い方は殆ど解りません。いちおう、デバッグモードでコンパイルし
ています。ファイルをドラッグドロップするとエラーになります。
>>エラーが出たことはどこに何が出たのでわかったのですか?は
バンドルされていない例外はDrag_Drop.exe(SHELL32.DLL)・・」が出ます。
どこに出たかについては答えられていないようですが、おそらく(VC++6.0 だとして)
メッセージウィンドー(で合ってたかな?)のデバッグタブが示す領域に出たのでしょう
で、エラーで中断したのでデバッグを終了(中止)したのですか?
ブレークポイントはわかりますか?
ステップ実行はわかりますか?
ステップインは判りますか?
ステップアウトはわかりますか?
コールスタックはわかりますか?
最初のコーディングのままでコンパイルは出来ます。
エラーはドロップした後にダイアログボックスが出て
混合モードとかの画面が出て最初の行が下記のよう
7FC16DE8 cmp word ptr [eax],8
>>コールスタックはわかりますか?
はいまいち解りません。
意地悪く尋ねますが、いまいち判らないという事は幾らか判る、もしくはかなり判ると
解釈していいのかな?
こういう言葉(文字を用いた)だけが頼りの場では相手にきちんとはっきり伝わる様に
心がける事が大切だと思います(自戒を込めて言っています)し、あなたがはやる気持ちも
わかりますが、相手からの問い(質問)にも答えるようにしましょう。それは、あなたの
困っている問題について判ろうとしているからこそ尋ねているので、あなたを困らせたい
からではないからだし、問題解決への糸口が見つかる確率が上がる(両者の認識のずれが
少なくなるから)と思うからです
さて、ブレークポイントについてはお分かりのようなので
switch ( pMsg->message )
か
Count = DragQueryFile( hDrop, 0xFFFFFFFF, NULL, 0 );
かの行にブレークポイントを置いて実行してください
ブレークでとまったらシングルステップで一行づつ実行してみましょう
おそらく
Count = DragQueryFile( hDrop, 0xFFFFFFFF, NULL, 0 );
の行を実行したところでエラーが出るでしょう。ですからこの行の実行をする前に
hDrop の値を確認してみてください(マウスカーソルをこの変数のある位置におく
だけでもいい)。これで何がわかったか教えてください