[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/31 01:22 / Filesize : 264 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build123



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/10/08(土) 12:33:02.29 ID:0jaJMPXG.net]
Win32APIについての質問はこちらへどうぞ。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
 英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

■過去スレ
Win32API質問箱 Build122
echo.2ch.net/test/read.cgi/tech/1451988219/

969 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:43:02.71 ID:Xv32D2hU.net]
DLLの共有セクションに変数やコードを入れれば、変数やコードを共有できるよ。
MSVCの場合は、
#pragma data_seg(".shared")
...
#pragma data_seg()
の中に変数を入れて
.defファイルに
SECTIONS
".shared" READ WRITE SHARED
と書いて、DLLのプロジェクトに.defファイルを追加する。

970 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:57:50.83 ID:Xv32D2hU.net]
https://msdn.microsoft.com/ja-jp/library/h90dkhs0.aspx

971 名前:デフォルトの名無しさん mailto:sage [2017/10/06(金) 00:07:58.97 ID:4rQw4n+d.net]
>>956
ちょこっとだけメモリ共有したいときいいよね
排他処理に InterlockedExchange なんかを使って

972 名前:片山博文MZ mailto:sage [2017/10/06(金) 00:17:07.07 ID:u49AV52w.net]
gcc/g++の場合は、__attribute__((section (".shared"),shared))を使うんだった。

973 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 16:13:05.10 ID:9AFyIjHV.net]
shcreatedirectoryexを無効化するにはどうしたら良いでしょうか?

974 名前:片山博文MZ mailto:sage [2017/10/29(日) 16:14:21.78 ID:k1qoOab2.net]
>>960
APIフック。

975 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 16:32:15.17 ID:vBzMORbG.net]
PEヘッダについての質問ってどこですればいいですか?
スレチな気がします・・・けどお願いします

976 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:45:55.24 ID:6JLIEeFJ.net]
聴き給へ

977 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:00:51.96 ID:vBzMORbG.net]
ありがとうございます

APIフックのための仲介DLL作成ツールを使おうと思ったんですけどkernel32.dllやuser32.dllを引数に与えても動かなくて
エラーの内容見てみたらNumberOfRvaAndSizes=0って出ていて
調べてみるとディレクトリ配列の数を示すパラメータみたいなんでPE INFOをつかって見てみました
そうしたら、Directoriesの情報タブにはExportの内容が表示されていたのですがDirectories Exportのサイズは0でした

ここで疑問なんですが、Directoriesのパラメータ(Rva, Size)がPE Infoに表示されているのにディレクトリ配列の数が0になっているのはなぜでしょうか?
また、ExportディレクトリがSize=0ならエクスポート関数のリストはどこから来たんでしょうか?

そのソフトのソースを見てみると本来はディレクトリ配列の最初の要素からエクスポート関数のリストを得るものだったのですがそのようなメンバはない(というかディレクトリ配列の数が0)みたいです

どなたかわかりましたらよろしくお願いします



978 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:03:33.39 ID:9FNc82fk.net]
手元にWindows環境がないので当てずっぽうに過ぎないが
dllがx64の奴だからと予想

979 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:21:19.33 ID:vBzMORbG.net]
>>965
ありがとうございます、user「32」.dllとなっていたのでx86と同じだと思っていました
試してみたいですけど家に32bit環境ないですね・・・

980 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 16:30:21.10 ID:speVoQlz.net]
wow64の中のを入れた?

981 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:50:49.35 ID:ZqGpDlPC.net]
>>967

>>964です
wow64のなかにあったuser32.dllを使うと動きました、ありがとうございます!
できれば、なぜ64bit版としか思えないフォルダ名のなかのものなら動いたのか、そもそもwow64とsystem32の同名ファイルは何が違うのか教えていただけないでしょうか?

982 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:59:31.38 ID:ZqGpDlPC.net]
すみません、ググったら出てきました
System32フォルダに入ってる方のdllが64bit用、wow64の中が32bit用という逆転があるんですね

教えていただいた方々ありがとうございました

983 名前:片山博文MZ mailto:sage [2017/11/08(水) 01:01:16.79 ID:TZ5JAUzS.net]
マイクロソフトは、64ビット環境で動くDLLをsystem32に格納し、32ビットのDLLをwow64に格納することにした。
32ビットと同じ名前なのは、互換性のため。詳しくはWin64APIについて調べるといい。

984 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:01:34.79 ID:0mQs8SG2.net]
>>968
wow64 = Windows (32bit) on Windows 64bit
→32bit

system32 = 昔(32bit)の時のフォルダー名変更してないだけ
→64bit

985 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:31:09.47 ID:MEe7IGP8.net]
systemのままで良かったよね

986 名前:デフォルトの名無しさん [2017/11/08(水) 03:22:35.44 ID:pi2d/ZnM.net]
32ビットはブームだったからなあ
そのくせProgram Filesはx86ってなんだよって感じ

987 名前:デフォルトの名無しさん [2017/11/08(水) 03:41:30.24 ID:R0qhel/o.net]
system32はWoW16でsystemを使ってたからねしょうがないね



988 名前:デフォルトの名無しさん [2017/11/08(水) 06:10:07.81 ID:ZWKv78KM.net]
>>969
w(32) on w64
の略だから逆転はしていない
紛らわしいネーミングだとは思うが
ディレクトリ名決め打ちの糞ソフトが
大量に出回ったあとだからやむを得ない

989 名前:デフォルトの名無しさん [2017/11/08(水) 18:38:40.88 ID:ROkXXR0p.net]
win32Windowsアプリって真っ白から作るんだな昔凄い量打ち込んでやっとウィンドウ出したのを思い出したわ・・・

990 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 18:48:38.98 ID:ZM9wnitb.net]
main()から手打ちしてたのはwin3.1時代までだなw

991 名前:デフォルトの名無しさん [2017/11/08(水) 19:00:03.99 ID:ROkXXR0p.net]
>>977
今は基礎作ってくれるのか10年前だからな基礎作るだけで学校の午後の授業が半分使ったしw

992 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 19:02:13.24 ID:u5hLhTv2.net]
10年前でも、WinMainから書いて無かったか?

993 名前:デフォルトの名無しさん [2017/11/08(水) 19:07:13.31 ID:ROkXXR0p.net]
書いてなかったねえprint貰って全部手書きで最初からウィンドウの幅構成とかカタカタ打ってたなそれか楽させないために空のファイルで作らされてたか

994 名前:片山博文MZ mailto:sage [2017/11/08(水) 19:09:52.22 ID:TZ5JAUzS.net]
今じゃWTLとかMFCとかが無料で使えるから、手作業は減っているはずだ。

https://github.com/katahiromz/MZC4

995 名前:デフォルトの名無しさん [2017/11/08(水) 20:59:58.61 ID:ROkXXR0p.net]
構成の仕方まだわからんから出来ない

996 名前:デフォルトの名無しさん [2017/11/08(水) 21:34:54.68 ID:R0qhel/o.net]
最後にWTLウィザード使ったのいつだろう?ってぐらいご無沙汰だわ

997 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 23:59:13.54 ID:S5satkVH.net]
バッチプログラムから起動するかコマンドラインから起動するかで WinMain() アプリからの戻り方が違うのが困る、いまさらだが。



998 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 00:24:21.64 ID:UmTkKmYx.net]
バッチで?

999 名前:デフォルトの名無しさん [2017/11/09(木) 03:45:53.03 ID:5qwvxsG7.net]
コマンドプロンプトやパワーシェル上から手入力でnotepad.exeと入力してメモ帳を起動すると、すぐに端末に制御が戻ってくる。

一方、以下の内容のように2回メモ帳を起動するbatファイルを作り実行すると一つ目のメモ帳が終わるまで待つことがわかる。
notepad.exe
notepad.exe

なお、windows10の場合、電卓calc.exeがユニバーサルWindowsプラットフォームのアプリなので
以下の内容のbatファイルからの起動でもすぐに制御が戻ってくるので電卓が2つ同時起動された状態になる。
calc.exe
calc.exe

ようするに、コンソールアプリ、Windowアプリ、ユニバーサルWindowsプラットフォームアプリの3種類でそれぞれ挙動が違う。

1000 名前:デフォルトの名無しさん [2017/11/09(木) 04:18:01.90 ID:OMOJ5BWv.net]
昔はopenGLを使ってたんだったわ昔のプロジェクト起動したらおまじないがエラー起こしてた

1001 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:04:07.82 ID:RrHmFgzV.net]
コマンドプロンプト上でのバッチファイル実行の挙動はDOSの仕様(MS-DOS)

バッチファイルは順次に作動するように作られてるので、WIN32プロセスの
終了待機が行われる。
ユニバーサルアプリは、DOS窓がEXEの終了待機を処理できないだけ。
WIN32アプリも、作りによっては同じく終了待機できない可能性はある。

1002 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:06:38.10 ID:RrHmFgzV.net]
補足すると、exeの戻り値で処理を分けるっていうのはDOS時代よく行うことだったので、
終了待機しないと戻り値が取れなくて困る。

1003 名前:デフォルトの名無しさん [2017/11/09(木) 10:21:19.15 ID:5qwvxsG7.net]
OSの正常なシャットダウンや再起動を妨げるクソなドライバー ZN200pcie.sys が悪名を轟かせている、
SKNET MonsterTV PCIE3 のドライバー追加・削除する時に処理をある程度自動化するため今もバッチ処理使ってる。
ドライバーを追加・削除するためのSKNET謹製アプリがGUIアプリなので終了を待ってくれないといろいろ困る。


set WAIT_EXE="C:\Program Files\Git\usr\bin\sleep.exe"
taskkill /F /IM MonsterTVLivePlayer.exe
taskkill /F /IM MonsterTVPlayer.exe
taskkill /F /IM MonsterTVMenu.exe
sc stop MonsterTVService
%WAIT_EXE% 3
PCIE3_win10_Driver\DriverInstall.exe <-- こいつがGUIアプリ。
sc start MonsterTVService
exit /B

1004 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:33:48.20 ID:RrHmFgzV.net]
PCIE3_win10_Driver\DriverInstall.exe の終了を待ちたいけど待ってくれないなら、
このスレ的にはそれを起動して終了を待つプログラムを組めばいいんじゃない?

1005 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:46:19.38 ID:5qwvxsG7.net]
>>991
失礼。質問したかったんじゃなくて、バッチがいまだ現役な例をあげた。
バッチでPCIE3_win10_Driver\DriverInstall.exe を終了待ちできてるので問題ない。

1006 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:23:34.26 ID:UInw5/Yz.net]
次スレよろ

1007 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:38:29.16 ID:9lAepYsb.net]
待ってくれないならループで待つようにすればいいだけの話だな



1008 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 16:34:53.73 ID:3Mpnex4d.net]
待っててくれないなら追いかければいいよ

1009 名前:デフォルトの名無しさん [2017/11/11(土) 19:44:42.77 ID:4LNBDgYy.net]
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/

1010 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:50:54.93 ID:k+Q3OR2Q.net]
test
mevius.2ch.net/test/read.cgi/tech/1510395780/

1011 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:51:42.96 ID:k+Q3OR2Q.net]
なるほど新リンク先は 5ch がいいのか 2ch がいいのか
ようわからん
教えてけれ

1012 名前:片山博文MZ mailto:sage [2017/11/12(日) 17:55:07.59 ID:hcIx1LXl.net]
>>998
将来的には5chに移行するから、5chがいい。

1013 名前:デフォルトの名無しさん [2017/11/12(日) 18:27:23.43 ID:C1sLEmf0.net]
ラスト

1014 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 400日 5時間 54分 21秒

1015 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<264KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef