Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build125
https://mevius.5ch.net/test/read.cgi/tech/1551247748/
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/
■関連スレ
Visual Studio 2019 Part4 https://mevius.5ch.net/test/read.cgi/tech/1585715794/
Visual Studio 2017 Part7 https://mevius.5ch.net/test/read.cgi/tech/1558179898/
【C++】 DirectX初心者質問スレ Part41 【C】 https://mevius.5ch.net/test/read.cgi/tech/1521786252/
探検
Win32API質問箱 Build126
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/05/01(金) 22:16:51.96ID:ZJ42fMZB435デフォルトの名無しさん
2020/12/13(日) 17:35:08.88ID:/mwshU+q CONIN$を開いたハンドルをCloseHandleで閉じたりFlushFileBuffersしたりは試しました。
436デフォルトの名無しさん
2020/12/13(日) 17:37:07.75ID:/mwshU+q437デフォルトの名無しさん
2020/12/13(日) 17:40:51.11ID:cAYsSKhI setvbuf
438蟻人間 ◆T6xkBnTXz7B0
2020/12/13(日) 17:48:17.56ID:zFOj0dh9439デフォルトの名無しさん
2020/12/13(日) 18:26:49.33ID:/mwshU+q setvbufやfreopenはcランタイムの関数で、バッファもOVERLAPPEDのバッファとは違う気がします
freopenしたstdinからのscanfがブロックされてしまうというのが443の話なので
そこからノンブロッキングのAPIを使う必要があるのでは、ということになったわけです
freopenしたstdinからのscanfがブロックされてしまうというのが443の話なので
そこからノンブロッキングのAPIを使う必要があるのでは、ということになったわけです
440デフォルトの名無しさん
2020/12/13(日) 19:01:38.77ID:/mwshU+q ReadConsoleってAPIもブロッキングなので使えないわけですが、低レベルなReadConsoleInputというのもあるらしく
OverlappedでのReadFileよりこっちの方が正攻法なようです。
ともかくやってみます。
ありがとうございました。
OverlappedでのReadFileよりこっちの方が正攻法なようです。
ともかくやってみます。
ありがとうございました。
441デフォルトの名無しさん
2020/12/13(日) 20:23:25.03ID:casXcC2M442デフォルトの名無しさん
2020/12/13(日) 21:23:50.52ID:w0iK+TRN 生のコンソールは制約が多いから
コンソールアプリの入出力を奪って適当なコンソールもどき作った方が早そうだけど
コンソールアプリの入出力を奪って適当なコンソールもどき作った方が早そうだけど
443デフォルトの名無しさん
2020/12/14(月) 00:15:39.66ID:pdqk93XN444デフォルトの名無しさん
2020/12/14(月) 11:31:29.18ID:AspHUlaN445デフォルトの名無しさん
2020/12/14(月) 12:14:03.24ID:GY9gb+Ps コマンドプロンプトのコンソールを使う案件は、スクリプト言語とのプロセス通信を使ったほうが幸せになれる確立が高い。
446デフォルトの名無しさん
2020/12/19(土) 12:04:23.50ID:+WDUx37o GetProcAddressってAやWないよね?
それでいてwcharでもcharでも機能するのは仕様?
それでいてwcharでもcharでも機能するのは仕様?
447デフォルトの名無しさん
2020/12/19(土) 12:37:56.57ID:/QQvHqFx wchar_t*渡して正常に動作するか?
448デフォルトの名無しさん
2020/12/28(月) 00:26:19.90ID:222C9err __declspec(thread)の変数ってスレッドごとに記憶域をもつわけですが
APIのTlsGetValue等でどうやって実現してるんでしょうか?
TLSインデックスをうまくスレッドハンドルと結び付けなけりゃならないと思うんですが。
APIのTlsGetValue等でどうやって実現してるんでしょうか?
TLSインデックスをうまくスレッドハンドルと結び付けなけりゃならないと思うんですが。
449デフォルトの名無しさん
2020/12/28(月) 02:51:22.15ID:p5Tcw1Ej 正直、このあたりは深く考えないことをオススメするのですが。
興味があるということであれば↓を参照しつつ。
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/6_6.html
コンパイラが__declspec(thread)の変数があった時に、どのようなコードを出力しているか
逆アセンブルしてみると理解が深まると思われます
興味があるということであれば↓を参照しつつ。
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/6_6.html
コンパイラが__declspec(thread)の変数があった時に、どのようなコードを出力しているか
逆アセンブルしてみると理解が深まると思われます
450デフォルトの名無しさん
2020/12/28(月) 09:50:34.64ID:222C9err451デフォルトの名無しさん
2021/01/01(金) 22:20:09.03ID:kFKOiQ+I VirtualAllocとHeapAllocの違いについてなんだけど
HeapAllocもヒープ残量以上のサイズを渡したらどの道VirtualAlloc呼ばれるって認識でいい?
HeapAllocもヒープ残量以上のサイズを渡したらどの道VirtualAlloc呼ばれるって認識でいい?
452デフォルトの名無しさん
2021/01/01(金) 22:30:52.02ID:3Cyk3fUO HeapCreate以上のメモリはHeapAlloc
からは作れない。
からは作れない。
453デフォルトの名無しさん
2021/01/02(土) 09:33:50.89ID:Li/cNK13 >>452
ある程度大きいサイズのメモリ確保だとVirtualAllocの方が早くなるからそう勘違いしてたけどそういう訳じゃないんだね
最初に実際にアクセスした時に初めて実際にメモリ割り当てが行われるとかの挙動がHeapAllocでも走るってだけか
ある程度大きいサイズのメモリ確保だとVirtualAllocの方が早くなるからそう勘違いしてたけどそういう訳じゃないんだね
最初に実際にアクセスした時に初めて実際にメモリ割り当てが行われるとかの挙動がHeapAllocでも走るってだけか
454デフォルトの名無しさん
2021/01/02(土) 09:59:10.06ID:r4407Ytg virtualの方がよりローレベルなので
チャンクアロケーターをMSのレベルを
超えて作れるか、ほぼ解放しない前提
のブロックを確保するとかでないと使わない。
普通のmalloc風に使うなら、ヒープ領域毎
あぼーん出来るCreateHeapの方が使い易い
チャンクアロケーターをMSのレベルを
超えて作れるか、ほぼ解放しない前提
のブロックを確保するとかでないと使わない。
普通のmalloc風に使うなら、ヒープ領域毎
あぼーん出来るCreateHeapの方が使い易い
455デフォルトの名無しさん
2021/01/12(火) 15:11:58.85ID:LUlB/OIG あるstaticなlibが既存の場合(.hで関数の引数がTCHAR *使用)
それがANSI用にコンパイルされたlibなのか
それともUNICODE用にコンパイルされたlibなのか
既存のバイナリのlibだけから判断する方法はありますか?
#ソースは.cppでTCHARで書かれているものがあったので
#そこから-DUNICODEであらためてコンパイルすれば解決はしたのですが
#上の質問の解決策があるなら知りたいです
それがANSI用にコンパイルされたlibなのか
それともUNICODE用にコンパイルされたlibなのか
既存のバイナリのlibだけから判断する方法はありますか?
#ソースは.cppでTCHARで書かれているものがあったので
#そこから-DUNICODEであらためてコンパイルすれば解決はしたのですが
#上の質問の解決策があるなら知りたいです
456デフォルトの名無しさん
2021/01/12(火) 15:19:23.66ID:gjvDcKpD >>455
C++の場合なら、ライブラリをdumpbinなどで調べて関数のマングリン化名を見れば分かる。
plain Cの場合は、実際にライブラリに1文字が2バイト以上のUNICODE文字を送ってみて、
正しく動作するかどうかテストしてみると分かる。
C++の場合なら、ライブラリをdumpbinなどで調べて関数のマングリン化名を見れば分かる。
plain Cの場合は、実際にライブラリに1文字が2バイト以上のUNICODE文字を送ってみて、
正しく動作するかどうかテストしてみると分かる。
457デフォルトの名無しさん
2021/01/12(火) 15:40:36.07ID:gjvDcKpD >>456
plain C の場合、他の方法としては、
1. dumpbinでライブラリ関数を逆アセンブルしてみて、引数の扱いがbyteに
なっているか、wordになっているかを調べれば分かる。
2. ライブラリの関数を呼び出すコードを書いてみて、デバッガで、ライブラリ関数の
中を逆アセンブルする。
plain C の場合、他の方法としては、
1. dumpbinでライブラリ関数を逆アセンブルしてみて、引数の扱いがbyteに
なっているか、wordになっているかを調べれば分かる。
2. ライブラリの関数を呼び出すコードを書いてみて、デバッガで、ライブラリ関数の
中を逆アセンブルする。
458デフォルトの名無しさん
2021/01/12(火) 15:41:24.71ID:LUlB/OIG もしかしてマングリの PEB_W とかのが UNICODE 用ってことでしょうか?
459デフォルトの名無しさん
2021/01/12(火) 15:52:56.37ID:gjvDcKpD460デフォルトの名無しさん
2021/01/12(火) 15:54:26.07ID:gjvDcKpD461デフォルトの名無しさん
2021/01/12(火) 21:18:12.25ID:80wnOS0a VCにはundnameというツールが標準でついてくるし、gccにはc++filtがある
462デフォルトの名無しさん
2021/01/15(金) 15:06:23.40ID:4rSXG5WT STDAPI と __declspec(dllexport) を同時に使うと怒られるんだけど
原因は何が考えられますか?
__declspec(dllexport) を使わずに .def ファイルで .dll を作成することは可能なのですが
.def を使わずに __declspec(dllexport) で .dll を作成しようとすると失敗します
原因は何が考えられますか?
__declspec(dllexport) を使わずに .def ファイルで .dll を作成することは可能なのですが
.def を使わずに __declspec(dllexport) で .dll を作成しようとすると失敗します
463デフォルトの名無しさん
2021/01/15(金) 15:12:37.26ID:Xgv++hhu 64bit?
465デフォルトの名無しさん
2021/01/15(金) 15:16:41.23ID:PcvYNCYN STDAPI は 暗に extern "C" を含んでてでマングリングなしの素
C++で _declspec(dllexport) の場合マングリングする
それで衝突してるんでないの?
C++で _declspec(dllexport) の場合マングリングする
それで衝突してるんでないの?
466デフォルトの名無しさん
2021/01/15(金) 15:43:21.85ID:4rSXG5WT467デフォルトの名無しさん
2021/01/15(金) 15:55:06.66ID:4rSXG5WT 解決っぽいです
https://python5.com/q/ntrrycea
https://python5.com/q/ntrrycea
468デフォルトの名無しさん
2021/01/19(火) 04:48:40.40ID:gq4TTO9r Windows10環境、お互いに管理者権限ありでPostMessageしても反応してくれないソフトがあったのですが
互換モードでWindows7を選択すると反応してくれるようになりました
そこで疑問に思ったのですがこの違いの原因は何でしょうか?
互換モードでWindows7を選択すると反応してくれるようになりました
そこで疑問に思ったのですがこの違いの原因は何でしょうか?
469蟻人間 ◆T6xkBnTXz7B0
2021/01/19(火) 16:33:42.40ID:dOqXDJ4/ >>468
http://home.att.ne.jp/delta/hrymkt/PTIPS/UACvsAPI.txt
>PostMessage は 同じプログラムでも 一方が管理者権限で走っていると此にそのソフト特有の
>メッセージの ポストも出来ません。
>個々の メッセージは 受けとる方で ChangeWindowMessageFilter API で指定すれば受けとる様に出来ます。
http://home.att.ne.jp/delta/hrymkt/PTIPS/UACvsAPI.txt
>PostMessage は 同じプログラムでも 一方が管理者権限で走っていると此にそのソフト特有の
>メッセージの ポストも出来ません。
>個々の メッセージは 受けとる方で ChangeWindowMessageFilter API で指定すれば受けとる様に出来ます。
470蟻人間 ◆T6xkBnTXz7B0
2021/01/19(火) 16:36:03.29ID:dOqXDJ4/ ここを見ている人のために念のため貼っておくよ。ご参考に。
Win32のリファレンス マニュアル
Win32.chm http://laurencejackson.com/win32/
右クリックして「プロパティ」を選び、「許可する」をクリックして「OK」ボタンを押せばセキュリティのブロックを解除できます。
Win32のリファレンス マニュアル
Win32.chm http://laurencejackson.com/win32/
右クリックして「プロパティ」を選び、「許可する」をクリックして「OK」ボタンを押せばセキュリティのブロックを解除できます。
471デフォルトの名無しさん
2021/01/20(水) 05:28:55.77ID:4MsON1Bd >>469
ありがとうございます
そのページは私も確認したのですがお互いに管理者権限ありなので下記に該当すると思います
>自身が 管理者権限で走っていれば この制限は無くなります。
ポストに成功する互換モードでもお互いに管理者権限ありなのでWindows7と10の違いが原因だと思ったのですが具体的に何が違うのか分からず…
ありがとうございます
そのページは私も確認したのですがお互いに管理者権限ありなので下記に該当すると思います
>自身が 管理者権限で走っていれば この制限は無くなります。
ポストに成功する互換モードでもお互いに管理者権限ありなのでWindows7と10の違いが原因だと思ったのですが具体的に何が違うのか分からず…
472デフォルトの名無しさん
2021/01/22(金) 11:43:02.03ID:LpWHKWeZ 64bitと32bit混在とか
LONG/HWNDの長さ違いとか
LONG/HWNDの長さ違いとか
473デフォルトの名無しさん
2021/01/22(金) 23:19:48.79ID:yGCss6uQ やんわりとrustに移行させようとしてるマイクロソフト
474デフォルトの名無しさん
2021/01/23(土) 17:16:39.51ID:5Na5U87Z C#は?
475デフォルトの名無しさん
2021/01/27(水) 11:53:32.96ID:cJSBZXf9476デフォルトの名無しさん
2021/01/27(水) 16:13:17.46ID:ZPuhQ2SN >>475
登録数だけ見るとやんわりには見えない
登録数だけ見るとやんわりには見えない
477デフォルトの名無しさん
2021/01/28(木) 11:08:41.51ID:dNWrUHbO 生暖かく応援するである
478デフォルトの名無しさん
2021/02/04(木) 20:13:07.23ID:m67WeuC9 フルパス以外でのファイル固有のユニーク値ってBY_HANDLE_FILE_INFORMATIONのnFileIndexHigh、nFileIndexLow以外に何かない?
479デフォルトの名無しさん
2021/02/04(木) 21:39:45.02ID:NI9TS1Gg ハッシュ?
480デフォルトの名無しさん
2021/02/05(金) 00:39:50.48ID:AkHBgQOB GetOpenFileName()でファイルを開くダイアログが使えますが、
https://dotup.org/uploda/dotup.org2378520.png
このダイアログの赤枠内のように、チェックボックス等が追加されたカスタムのダイアログはどのようにすれば実現できるのでしょうか?
https://dotup.org/uploda/dotup.org2378520.png
このダイアログの赤枠内のように、チェックボックス等が追加されたカスタムのダイアログはどのようにすれば実現できるのでしょうか?
481デフォルトの名無しさん
2021/02/05(金) 00:56:51.01ID:Nx26rnNw >>478
FILE_ID_INFOのFileIdで128bitに拡張されてるな
FILE_ID_INFOのFileIdで128bitに拡張されてるな
482蟻人間 ◆T6xkBnTXz7B0
2021/02/05(金) 01:06:52.68ID:U+NO2W2G484デフォルトの名無しさん
2021/02/05(金) 11:21:57.41ID:L6Uw8oZz >>479>>481
膨大な量のファイルを列挙するにあたってハッシュ計算するのも、ハンドル開いてBY_HANDLE_FILE_INFORMATION読み込むのも億劫だったんだが
NtQueryDirectoryFileでmftからファイルID取れるってことに気付いた
膨大な量のファイルを列挙するにあたってハッシュ計算するのも、ハンドル開いてBY_HANDLE_FILE_INFORMATION読み込むのも億劫だったんだが
NtQueryDirectoryFileでmftからファイルID取れるってことに気付いた
485デフォルトの名無しさん
2021/02/05(金) 12:13:51.05ID:UnxdNd0N 画像ビューワまだできないの?
みんな待ってんだから
みんな待ってんだから
486デフォルトの名無しさん
2021/02/06(土) 00:30:35.01ID:L1ZLjs+J コントロールパネルでフォントを「非表示」にすると、言語に応じて
フォント選択画面に出てこなくなり選びやすくなるという機能があります。
この「非表示フォント」かどうかを判別する方法はありますでしょうか?
ChooseFont()ではなくEnumFontFamiliesEx()を使い、独自のフォント選択ダイアログを作成中ですが
非表示フォントを判別する方法がわからずすべて列挙してしまいます。
フォント選択画面に出てこなくなり選びやすくなるという機能があります。
この「非表示フォント」かどうかを判別する方法はありますでしょうか?
ChooseFont()ではなくEnumFontFamiliesEx()を使い、独自のフォント選択ダイアログを作成中ですが
非表示フォントを判別する方法がわからずすべて列挙してしまいます。
487蟻人間 ◆T6xkBnTXz7B0
2021/02/06(土) 00:37:08.03ID:j9M7S4X7 >>486
レジストリ設定によるらしい。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Font Management
https://visualstudiomagazine.com/Peterson1110?m=1
レジストリ設定によるらしい。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Font Management
https://visualstudiomagazine.com/Peterson1110?m=1
488デフォルトの名無しさん
2021/02/06(土) 02:04:53.58ID:L1ZLjs+J489デフォルトの名無しさん
2021/02/13(土) 06:46:11.29ID:neaggcXJ ExpandEnvironmentStrings() は、%環境変数%を展開してくれるけど、
PowerShellの$env:環境変数 を展開してくれるAPIとかないのかな?
PowerShellの$env:環境変数 を展開してくれるAPIとかないのかな?
490デフォルトの名無しさん
2021/02/13(土) 10:11:29.20ID:PYtZn7CJ >>489
[Environ]::ExpandEnvironmentVariables($env:環境変数)
[Environ]::ExpandEnvironmentVariables($env:環境変数)
491デフォルトの名無しさん
2021/02/14(日) 11:18:45.76ID:PGTjJwEI 2021/02/10
WindowsのTCP/IP実装に複数の重大な脆弱性、今月のセキュリティパッチはかならず適用を
ブルースクリーンが引き起こされるサービス拒否(DoS)脆弱性はすぐに攻撃が出回る可能性
https://forest.watch.impress.co.jp/docs/news/1305583.html
WindowsのTCP/IP実装に複数の重大な脆弱性、今月のセキュリティパッチはかならず適用を
ブルースクリーンが引き起こされるサービス拒否(DoS)脆弱性はすぐに攻撃が出回る可能性
https://forest.watch.impress.co.jp/docs/news/1305583.html
492デフォルトの名無しさん
2021/03/03(水) 09:48:23.14ID:GTR/ytE6 Win32の質問というよりOSの仕様に近い質問になってしまいますが、
新しくファイルを作るにあたり予めファイルサイズが分かっている場合、SetFilePointerEx&SetEndOfFileで予めファイルサイズを決めておくと断片化しづらいというテクニックがありますが
一度のWriteFileで一気に書き込む場合は上記の工程を行わずとも断片化しづらいのでしょうか?
新しくファイルを作るにあたり予めファイルサイズが分かっている場合、SetFilePointerEx&SetEndOfFileで予めファイルサイズを決めておくと断片化しづらいというテクニックがありますが
一度のWriteFileで一気に書き込む場合は上記の工程を行わずとも断片化しづらいのでしょうか?
493デフォルトの名無しさん
2021/03/03(水) 17:46:09.32ID:Uextqx1e 本当にそんな制御になっているか分からないけど理屈だけだと、最初に一発ここまで
使うよって宣言しておけば領域が一挙に確保されるかもしれない
逐一書き込みを行ってその度に領域を確保すると、システム全体がシングルスレッドで
動いていれば(ありえないけど)、自分が書き込みを行っている間に別の
プロセス/スレッドが書き込みを行うと、領域が分断されると思うのだけど
使うよって宣言しておけば領域が一挙に確保されるかもしれない
逐一書き込みを行ってその度に領域を確保すると、システム全体がシングルスレッドで
動いていれば(ありえないけど)、自分が書き込みを行っている間に別の
プロセス/スレッドが書き込みを行うと、領域が分断されると思うのだけど
494デフォルトの名無しさん
2021/03/09(火) 14:20:50.29ID:iP4nVCks 断片化対策というか
常に同じセクタに書き込むように出来なかったっけ?
常に同じセクタに書き込むように出来なかったっけ?
495デフォルトの名無しさん
2021/03/09(火) 23:41:10.45ID:zAPDJC3N 高速ファイルコピーのフリーソフトの作者のブログか何かでこんだけWindowsのコピーは大変だよみたいな記事を読んだ覚えがある
496デフォルトの名無しさん
2021/03/10(水) 03:22:04.66ID:Gf/98J6J これやな
ttps://m.facebook.com/dnobori/posts/2142836202459674
ttps://m.facebook.com/dnobori/posts/2142836202459674
497デフォルトの名無しさん
2021/03/10(水) 07:59:53.47ID:pDjVp4Qi 面白かった
498デフォルトの名無しさん
2021/03/10(水) 09:21:13.05ID:XSc6HIdm 結構読んだと思ったらまだスクロールバーが半分で、うんざりして読むのとWindowsでファイルコピーするのをやめた
499デフォルトの名無しさん
2021/03/10(水) 09:48:53.12ID:ayODL1B0 リーナスですらもNTFSが現状ベストって認めてるくらいだからその分複雑なんだろうね
500デフォルトの名無しさん
2021/03/26(金) 09:24:09.04ID:saZG9dHC ほとんどの環境で特にエラーは出ないのですが
特定の環境でSHFileOperation()をFO_COPYで呼ぶとERRORONDESTが返ってきます
ファイルが使用中で書き込みできない場合は別のエラー、
ファイルではなく同名のフォルダでも別のエラーとなり
エクスプローラで手動でコピーは可能です
コピー元は全て英語のD:\AAA\BB.exe, コピー先は%temp%\AAA\\BB.exeを展開したもので
C:\Users\Username\AppData\ocal\Temp\AAA\\BB.exe
リトライしても改善しません
SHFileOperation()でERRORONDESTが返る要因てどんなのがありえそうですか
特定の環境でSHFileOperation()をFO_COPYで呼ぶとERRORONDESTが返ってきます
ファイルが使用中で書き込みできない場合は別のエラー、
ファイルではなく同名のフォルダでも別のエラーとなり
エクスプローラで手動でコピーは可能です
コピー元は全て英語のD:\AAA\BB.exe, コピー先は%temp%\AAA\\BB.exeを展開したもので
C:\Users\Username\AppData\ocal\Temp\AAA\\BB.exe
リトライしても改善しません
SHFileOperation()でERRORONDESTが返る要因てどんなのがありえそうですか
502デフォルトの名無しさん
2021/03/26(金) 13:42:06.64ID:cPlbb1Mg pFromとpToの末尾は'\0'が2つ必要だけど忘れてない?
503デフォルトの名無しさん
2021/03/26(金) 17:20:08.28ID:XmR64PQN pTo はダブルにする必要なくて pFrom のみじゃね?
複数個のファイル名を \0 をセパレータにしての連結して渡す意図かと
pFrom "fileA\0fileB\0fileC\0"
pTo "dir\\"
fileA,fileB,fileC を dir\ へ
複数個のファイル名を \0 をセパレータにしての連結して渡す意図かと
pFrom "fileA\0fileB\0fileC\0"
pTo "dir\\"
fileA,fileB,fileC を dir\ へ
504500
2021/03/26(金) 18:24:57.44ID:saZG9dHC505デフォルトの名無しさん
2021/03/26(金) 18:28:02.43ID:3gUI29td >>499
あわしろ氏は、NTFSは欠陥品と言ってたけどな。
あわしろ氏は、NTFSは欠陥品と言ってたけどな。
506デフォルトの名無しさん
2021/03/26(金) 19:16:16.62ID:MYLkW03n >>504
FOF_MULTIDESTFILES を指定した場合はどうなるの?
というか、まず C:\Users\Username\AppData\ocal\Temp\AAA というディレクトリじゃなくて
決め打ちでコピー先を D:\BBB\BB.exe って指定してうまくいくかどうか試してみたら?(D:\BBB というディレクトリは作成しておく)
これで失敗すれば関数の呼び出しに問題があると言えるし
成功すればその C:\...\Temp\AAA というディレクトリに問題がある
FOF_MULTIDESTFILES を指定した場合はどうなるの?
というか、まず C:\Users\Username\AppData\ocal\Temp\AAA というディレクトリじゃなくて
決め打ちでコピー先を D:\BBB\BB.exe って指定してうまくいくかどうか試してみたら?(D:\BBB というディレクトリは作成しておく)
これで失敗すれば関数の呼び出しに問題があると言えるし
成功すればその C:\...\Temp\AAA というディレクトリに問題がある
507500
2021/03/26(金) 19:31:39.70ID:saZG9dHC >>506
決め打ちでパス指定してもダメでした
というかどこからどこにコピーしても全部ERRORONDESTのエラーになります
問題あるのは特定のPCだけで、他のPCだと問題なく動作するので、
何か変なソフトに邪魔されているかもしれません
もうだいぶあきらめ気味ですが、解決したら続報のせます
回答くれた人ありがとう
決め打ちでパス指定してもダメでした
というかどこからどこにコピーしても全部ERRORONDESTのエラーになります
問題あるのは特定のPCだけで、他のPCだと問題なく動作するので、
何か変なソフトに邪魔されているかもしれません
もうだいぶあきらめ気味ですが、解決したら続報のせます
回答くれた人ありがとう
508デフォルトの名無しさん
2021/03/26(金) 21:05:36.78ID:mmjZdfI1 セキュリティーソフトとか、アクセス権限とか
509デフォルトの名無しさん
2021/03/26(金) 21:09:03.33ID:CAbtDF19 エクスプローラの手作業ではコピーに成功してるらしいんだよねぇ
510デフォルトの名無しさん
2021/03/27(土) 15:56:10.46ID:VE8mC68O 特定のも含めてPCがそれぞれどんな構成か出さないとエスパー案件になりそう
windowsがunicode設定だったり実はバージョン違いとかとか
windowsがunicode設定だったり実はバージョン違いとかとか
511デフォルトの名無しさん
2021/04/03(土) 22:56:21.93ID:pdE0Ehe0 GetFullPathNameW() に C:\ ではなく C: を渡すとどんな文字列が返ってくるのかお教えください
512デフォルトの名無しさん
2021/04/04(日) 01:15:17.97ID:SuYLyBNw513デフォルトの名無しさん
2021/04/04(日) 08:37:20.89ID:SvWSCx06 >>511
試す気は全くないんだな?w
試す気は全くないんだな?w
514デフォルトの名無しさん
2021/04/05(月) 01:40:45.93ID:VcR5h3be fopen()に環境変数、例えば %VARIABLE% を含むパスを渡した場合、
fopen()の側で環境変数を展開してからファイルオープンするかどうかって決まってますか?
fopen()の側で環境変数を展開してからファイルオープンするかどうかって決まってますか?
>>514
環境変数は@自分で目的のものを入手して、A自分で展開するしかない、かと
環境変数は@自分で目的のものを入手して、A自分で展開するしかない、かと
516デフォルトの名無しさん
2021/04/05(月) 05:55:39.12ID:B3M7CzzN >>514
決まってる
決まってる
517デフォルトの名無しさん
2021/04/05(月) 20:35:30.57ID:XdKinJWZ fopen()はWin32APIじゃないから、決まってないんじゃないの?
518デフォルトの名無しさん
2021/04/05(月) 21:00:39.05ID:ogb+W0EK 決まってるという言い回しがアレだが、仕様としては>>515なのではないか
GetEnvironmentVariableとかExpandEnvironmentStringsとか使えと
つーか、511にせよ514にせよ自分で試せよ
内容からして同一人物か?
GetEnvironmentVariableとかExpandEnvironmentStringsとか使えと
つーか、511にせよ514にせよ自分で試せよ
内容からして同一人物か?
519デフォルトの名無しさん
2021/04/05(月) 22:17:44.32ID:36Cyp5PA 便乗だけどREG_EXPAND_SZ属性のレジストリの文字列って適当なAPIで取り出す時には展開されてる事を期待していいのかな
520デフォルトの名無しさん
2021/04/05(月) 22:28:04.02ID:VcR5h3be fopen()つまりCreateFile()の環境変数展開の仕様が決まっているのならその文章のURLを貼ればいいだけで、そういった文章がないということは決まってないということだろう。
521デフォルトの名無しさん
2021/04/05(月) 22:35:50.69ID:SUd0RcBB 環境変数を展開するというなら%が含まれるファイル名の時は%をどうエスケープするの?
CreateFileのリファレンスに書いてある?
CreateFileのリファレンスに書いてある?
522デフォルトの名無しさん
2021/04/05(月) 22:41:43.76ID:5fbmy6mD >>520
そういった文章がない=展開しないと決まっている じゃないかね
そういった文章がない=展開しないと決まっている じゃないかね
524デフォルトの名無しさん
2021/04/05(月) 23:41:24.36ID:VcR5h3be そもそもWin32APIはコマンドプロンプトのシェルに依存すべきではないから%VARIABLE%を勝手に展開するのはあまり好ましくない。
PowerShellやbashの書式で環境変数展開できないのは不公平になる。
PowerShellやbashの書式で環境変数展開できないのは不公平になる。
525デフォルトの名無しさん
2021/04/06(火) 00:50:31.34ID:7Od2aTl4526デフォルトの名無しさん
2021/04/06(火) 00:51:08.33ID:yLju/cD3 >>521
%%じゃないの?
%%じゃないの?
527デフォルトの名無しさん
2021/04/06(火) 00:56:50.13ID:XnTB+TXu >>526
printfじゃねーんだぞ
printfじゃねーんだぞ
528デフォルトの名無しさん
2021/04/06(火) 01:41:26.10ID:Im/sjr+Q 書いていることが仕様であって、書いてないことは仕様ではない
CreateFileでパンが焼けないと書いていないからパンが焼けると判断するのはキチガイ以外他ない
CreateFileでパンが焼けないと書いていないからパンが焼けると判断するのはキチガイ以外他ない
529デフォルトの名無しさん
2021/04/06(火) 05:09:02.50ID:wdOO9l8n 全てのAPIにパンは焼けませんって書かせる基地外w
530デフォルトの名無しさん
2021/04/06(火) 09:41:04.31ID:9TplgPlq 文字列の痴漢は頼みもしないのに勝手にされたら邪魔だ
531デフォルトの名無しさん
2021/04/06(火) 12:59:56.19ID:EpJptavP テストもしないクズなのは確定なんだが
「仕様」かどうかが主語であるべきなのに、仕様かどうか「決まっている」というところを主語にして
続けていること自体がもはや技術者ではない
「仕様」かどうかが主語であるべきなのに、仕様かどうか「決まっている」というところを主語にして
続けていること自体がもはや技術者ではない
532デフォルトの名無しさん
2021/04/06(火) 17:02:11.12ID:BqyPmRZM533デフォルトの名無しさん
2021/04/06(火) 17:26:56.80ID:mi+0bNxV C言語って極力余計なことはしないスタンスだから
環境変数の展開はやりたければ、自前でやったうえで fopen に渡せであって
展開動作を行なうようなのは printf のフォーマットのように 特記されてる
気がする
環境変数の展開はやりたければ、自前でやったうえで fopen に渡せであって
展開動作を行なうようなのは printf のフォーマットのように 特記されてる
気がする
534デフォルトの名無しさん
2021/04/06(火) 17:50:22.69ID:yLju/cD3 >>526
でもレジストリに記録されているMSのデータって%1とかそういう系多いよね
でもレジストリに記録されているMSのデータって%1とかそういう系多いよね
■ このスレッドは過去ログ倉庫に格納されています
