Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


41487 / 76732 ←次へ | 前へ→

【40325】Re:SetWindowLongPtrを使うには?
発言  Blue  - 06/7/11(火) 16:46 -

引用なし
パスワード
   ていうか、やっぱり「GetWindowLongPtr」「SetWindowLongPtr」はDLLの関数ではないですね。

実際使おうとするとDLLにないと言われてしまったところ(Xp SP2/Office2003)、
Dependency WalkerというDLL内の関数を見ることができるツールで確認したところ、
「GetWindowLongPtr」「SetWindowLongPtr」は存在しませんでした。

> この関数は SetWindowLongPtr に取って代わられています。32ビット版と64ビッ
> ト版の Windows で共通して利用できるコードを記述する場合には、
> SetWindowLongPtr 関数を使用する必要があります。
これは、ヘッダファイルをつかってコーディングするつまり「C/C++」の時の注意事項だったのでしょう。

よって、ヘッダファイルを使わずに、Declear宣言していくVBAでは、使えないのではないでしょう。

まぁ、Declare宣言する以上、64ビット環境になればまた書き直す羽目になると思うので
とりあえず「GetWindowLong」「SetWindowLong」を利用すればよいです。
(ちゅうか、Win32 Declare宣言なんてほとんど書き直しでしょ。なんせWin32 APIですから)


(以下、参考程度。わからなければ読まなくてもよいです。)
user32.dllってことは32ビット用のDLLですから、64ビット用はuser64.dllとかになって、
おそらくヘッダで

#ifdef 64ビット環境である
 #define GetWindowLongPtrA GetWinodwLongPtrA // user64.dllには定義されている(予想)
 #define GetWindowLongPtrW GetWindowLongPtrW // user64.dllには定義されている(予想)
#else
 #define GetWindowLongPtrA GetWindowLongA
 #define GetWindowLongPtrW GetWindowLongW
#endif
#ifdef UNICODE
 #define GetWindowLongPtr GetWindowLongPtrW
#else
 #define GetWindowLongPtr GetWindowLongPtrA
#endif

てなかんじになっているんでしょう。(最新のPlatform SDK)

0 hits

【40304】(Not WS_SYSMENU)ってどういう意味です... mutu 06/7/11(火) 10:18 質問
【40305】Re:(Not WS_SYSMENU)ってどういう意味で... Statis 06/7/11(火) 10:26 発言
【40306】Re:(Not WS_SYSMENU)ってどういう意味で... mutu 06/7/11(火) 10:35 質問
【40308】Re:(Not WS_SYSMENU)ってどういう意味で... Blue 06/7/11(火) 10:53 発言
【40310】Re:(Not WS_SYSMENU)ってどういう意味で... ひげくま 06/7/11(火) 11:02 発言
【40311】Re:(Not WS_SYSMENU)ってどういう意味で... ひげくま 06/7/11(火) 11:05 発言
【40309】Re:(Not WS_SYSMENU)ってどういう意味で... ichinose 06/7/11(火) 10:59 発言
【40314】Re:(Not WS_SYSMENU)ってどういう意味で... mutu 06/7/11(火) 12:36 お礼
【40316】SetWindowLongPtrを使うには? mutu 06/7/11(火) 13:47 質問
【40318】Re:SetWindowLongPtrを使うには? Blue 06/7/11(火) 14:00 発言
【40322】Re:SetWindowLongPtrを使うには? mutu 06/7/11(火) 15:16 質問
【40323】Re:SetWindowLongPtrを使うには? Blue 06/7/11(火) 15:22 発言
【40324】Re:SetWindowLongPtrを使うには? mutu 06/7/11(火) 16:23 お礼
【40325】Re:SetWindowLongPtrを使うには? Blue 06/7/11(火) 16:46 発言
【40330】Re:SetWindowLongPtrを使うには? mutu 06/7/11(火) 17:21 お礼

41487 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free