C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■92630 / 5階層)  Re: 別のアプリに対してモーダルとなるウィンドウの作成
□投稿者/ 魔界の仮面弁士 (2424回)-(2019/10/11(Fri) 18:50:03)
No92621 (HiHi さん) に返信
> を見る限り、任意のアプリのHWNDは、32bitアプリから見ても64bitアプリから見ても同じ値であると理解しました。

正の 32bit 値の範囲、
&H0I〜&H7FFFFFFFI および
&H0L〜&H7FFFFFFFL の範囲は気にしなくて良さそう。


HWND 自体は、互換性の理由から利用可能なハンドル数が
今でも 16bit 分(数万個)しかないようです。
https://www.wdic.org/w/TECH/HWND
https://cpplover.blogspot.com/2007/07/blog-post_19.html

肝心な値の範囲については、負数もありえますが、実際のところ、
Win32/Win64 とも、下位 32bit 分までが有効値のようです。
https://docs.microsoft.com/ja-jp/windows/win32/winprog64/interprocess-communication


Win32/Win64 間で、コマンドラインで受け渡す際には、手順によっては、
上位ビットの部分を切り捨て(64→32)たり、符号拡張(32→64)する必要があるかも知れません。

まぁ、INVALID_HANDLE_VALUE などであれば、New IntPtr(-1) で済ませられますし、
さほど問題無いとは思いますが、IntPtr 自体はどういう動作を取るのか、一応実験。


《x64 の場合》
Dim P1 As New IntPtr(&H80000000L) '0x0000000080000000 扱い。ToInt64() 可能。ToInt32() は OverflowException。
Dim P2 As New IntPtr(&H80000000I) '0xFFFFFFFF80000000 扱い。ToInt32() と ToInt64() の両方が使用可能。
Dim P3 As New IntPtr(2147483648L) '0x0000000080000000 扱い。ToInt64() 可能。ToInt32() は OverflowException。
Dim P4 As New IntPtr(-2147483648) '0xFFFFFFFF80000000 扱い。ToInt32() と ToInt64() の両方が使用可能。

《x86 の場合》
Dim P1 As New IntPtr(&H80000000L) 'OverflowException で生成できない。
Dim P2 As New IntPtr(&H80000000I) '0x80000000 扱い。ToInt32() と ToInt64() の両方が使用可能。
Dim P3 As New IntPtr(2147483648L) 'OverflowException で生成できない。
Dim P4 As New IntPtr(-2147483648) '0x80000000 扱い。ToInt32() と ToInt64() の両方が使用可能。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re: 別のアプリに対してモーダルとなるウィンドウの作成 /HiHi 返信無し
 
上記関連ツリー

別のアプリに対してモーダルとなるウィンドウの作成 / HiHi (19/10/10(Thu) 12:47) #92606
Re[1]: 別のアプリに対してモーダルとなるウィンドウの作成 / とっちゃん (19/10/10(Thu) 13:55) #92608
│└ Re[2]: 別のアプリに対してモーダルとなるウィンドウの作成 / HiHi (19/10/10(Thu) 15:21) #92609
│  ├ Re[3]: 別のアプリに対してモーダルとなるウィンドウの作成 / とっちゃん (19/10/10(Thu) 17:03) #92611
│  │└ Re: 別のアプリに対してモーダルとなるウィンドウの作成 / HiHi (19/10/11(Fri) 11:35) #92621
│  │  ├ Re: 別のアプリに対してモーダルとなるウィンドウの作成 / 魔界の仮面弁士 (19/10/11(Fri) 18:50) #92630 ←Now
│  │  └ Re[5]: Re: 別のアプリに対してモーダルとなるウィンドウの作成 / PANG2 (19/10/11(Fri) 12:57) #92622
│  └ Re[3]: 別のアプリに対してモーダルとなるウィンドウの作成 / PANG2 (19/10/10(Thu) 18:24) #92615
│    └ Re[4]: 別のアプリに対してモーダルとなるウィンドウの作成 / とっちゃん (19/10/11(Fri) 10:05) #92617
Re[1]: 別のアプリに対してモーダルとなるウィンドウの作成 / Azulean (19/10/11(Fri) 06:27) #92616
  └ Re[2]: 別のアプリに対してモーダルとなるウィンドウの作成 / HiHi (19/10/21(Mon) 18:00) #92707 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信