問題タブ [createfile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - フラッシュ ドライブのハンドルを開くと、「アクセスが拒否されました」というエラー コードが表示される
USB フラッシュ ドライブへのハンドルを作成しようとすると、パスが見つからないというエラーが表示される理由を知りたいです。
そこから 512 バイト (ブート セクタ) のストリームを .bin ファイルに読み込みたいのですが、最初にハンドルの作成を通過できないようです。Windows は、アプリケーションがリムーバブル ドライブへのハンドルを開くのを防ぎますか?
createfile - WriteFile() 呼び出しは x86 では機能しますが、x64 では機能しません。エラー コード 6 の取得 -- VB.NET を使用したハンドルが無効です
CreateFile、WriteFile、および ReadFile API 呼び出しを使用して、データを USB デバイスに書き込みます。私が持っているコードは、32 ビット システムで完全に動作します。CreateFile はデバイスへのハンドルを取得し、そのハンドルといくつかのデータを WriteFile に渡し、ReadFile でそのハンドルから読み取ります。
私の問題は、同じコードが 64 ビット システムでは機能しないことです。WriteFile から返されたエラーは 6 です。ハンドルが無効です。CreateFile 呼び出しでハンドルの有効性を確認しましたが、有効なハンドルです。GetLastError() を呼び出すと、CreateFile の後に 0 が返されます。「ファイル」は重複した通信用に開かれており、重複した init 呼び出しも適切な値を返しています。
私の質問: 64 ビット システムであるため、他に考慮する必要があることはありますか? 違う旗?まったく別の呼び出しですか?
念のために言っておきますが、コードを同期させるためにコードを少しハックして(OVERLAPPEDを取り出しました)、それが機能したので、問題はOVERLAPPED構造または呼び出しの初期化方法にあると想定しています.
どんな助けでも大歓迎です。
編集:
以下は、私の API 署名と、OVERLAPPED 実装に使用しているコードです。
以下は、問題が発生する書き込みのコードです。読み取りでは、OVERLAPPED 構造体の hEvent パラメータが同じ方法で初期化されることに注意してください。
c++ - CreateFile() で文字列を LPCWSTR に変換してシリアル ポートをアドレス指定する
シリアル ポートのアドレス指定に Windows の CreateFile 関数を使用すると、TEXT / UNICODE に少し問題があるようです。誰かが私のエラーを指摘するのを手伝ってもらえますか?
VS 2008 を使用して VC++ で Win32 コンソール アプリケーションを作成しています。
次のように、シリアル ポートをアドレス指定するハンドルを作成できます。
それは問題なく動作します (この\\\\.\\
ビットは、COM9 以上のコンポートに必要であり、COM9 までのコンポートでも機能します)。問題は、私のコンポートが常に COM20 であるとは限らないことです。そのため、ユーザーにそれが何であるかを指定してもらいたいと考えています。
ここに私が試したいくつかのことがあります:
これはコンパイルされず、次のエラーが返されます: error C2664: 'CreateFileW' : cannot convert parameter 1 from 'std::string' to 'LPCWSTR'
その場合、CreateFileAを指定するとうまくいくと思いましたが、基本的に同じエラーが発生しました。
私も試しました:
これもコンパイルされず、エラー C2065: 'LcomID' : 宣言されていない識別子が返されます
私はあまり専門家ではありませんが、しばらくの間これに取り組んできました。L"\\\\.\\COM20"
ユーザーがcomportを指定でき、CreateFileが引き続き機能するように置き換える方法を誰かに教えてもらえますか? ありがとう!
c++ - パラメータ 1 を 'char' から 'LPCWSTR' に変換できません
このエラーが発生し続けます:
cannot convert parameter 1 from 'char' to 'LPCWSTR'
誰かが助けることができますか?
c - 有効なファイルパスに関する質問
次のコードを使用してファイルを作成していますが、常にエラーコード123で失敗しました(パス構文が無効です)。
奇妙なことに、 path_okは常に問題ありませんが、path_errは常に123で失敗しました。失敗後、path_errが指すバッファーはクリアされます。
誰かが私に光を当てることができますか?2つのポインタのメモリを確認しましたが、内容は同じようです。
どうもありがとう。
ComposeDumpFileName()関数は次のようになります。
アップデート
上記のコードで、次のコードを実行すると、次のようになります。
ComposeDumpFileNameが返された後、そのスタックフレームは無効ですが、そのローカル変数WCHARdump_file_path[MAX_PATH]はまだスタックに存在します。したがって、これは、そのスタックスペースがすでに無効であるにもかかわらず、そのコンテンツを引き続き表示できる理由を説明しています。
次に、次のステートメントを実行します。
wprintf()とCreateFileW()には、独自のスタックフレームがあります。デバッガーでは、wprintf()のスタックフレームがpDumpFileNameが指すメモリコンテンツを破壊しなかったことがわかりました。CreateFileWが持つ可能性があるため、無効なパス構文について文句を言います。
これは私の現在の理解です。間違っている場合は訂正してください。
ありがとう。
c++ - プログラム間で CreateFileMapping 同期?
メモリ マッピングを使用してファイルを開く予定です。
ファイルは同じ方法で別のプロセスによって既に開かれています。つまり、独自のメモリ マップ ビューが開かれており、時々ファイルが編集されます。
同じファイルを自分で編集し、他のプロセスが行った変更を上書きして競合することなく、他のプロセスとできるだけ効果的にアクセスを共有したいと考えています。
まず、ファイルを直接開くことができます。
ただし、ファイル バイナリを直接編集することは、他のプロセスのメモリ マッピング オブジェクトが私の変更を上書きする可能性があるという点で効果的ではありません。
以下のように、独自のファイル マッピングと独自のビューを開くと、他のプロセスが自動的に更新され、編集内容が上書きされないように見えます。
ここで起こっているシンクロニシティは何ですか?
他のプロセスのファイル マッピングにマップされた独自のビューを開いているわけではありません。同じファイルにまったく新しい FileMapping を作成しました。
ファイルシステムまたは FileMapping システムは、これを何らかの形で理解しているようです。なんで?
c# - C#でランダムファイルを作成する
指定されたサイズのファイルを作成しています-ランダムでいいのですが、どのデータが含まれているかは関係ありません。現在私はこれを行っています:
これは効率的ではなく、それを実行するための正しい方法でもありません。より高性能なソリューションはありますか?
すべての答えをありがとう。
編集
2Gbファイル(ミリ秒単位の時間)に対して次のメソッドでいくつかのテストを実行しました。
方法1:Jon Skeet
該当なし-2Gbファイルのメモリ不足例外
方法2:Jon Skeet
@ 1K-45,868、23,283、23,346
@ 128K-24,877、20,585、20,716
@ 8Kb-30,426、22,936、22,936
方法3-HansPassant(超高速ですが、データはランダムではありません)
257、287、3、3、2、3など。
c# - アプリケーションアイコンを作成するための最良の方法
アプリケーションのアイコンを作成するための最良の方法は何ですか?
VisualStudioまたはおそらく別のプログラムから。
Visual Studioでアイコンを作成し、それをアプリケーションアイコンとして使用しますが、デスクトップにアイコンショートカットを配置すると、灰色のアイコンしか表示されません。これは、アイコンのサイズなどが原因である可能性がありますか?
c++ - Windows C++ API を使用して任意のサイズのファイルを作成する
Windows C/C++ API を使用して、任意のサイズのファイルを作成したいと考えています。32 ビットの仮想アドレス メモリ空間を持つ Windows XP サービス パック 2 を使用しています。私はCreateFileに精通しています。
ただし、CreateFile にはサイズ引数がありません。サイズ引数を渡したい理由は、ユーザーが所定のサイズのデータ構造にアクセスできるようにするメモリ マッピング ファイルを作成できるようにするためです。任意の所定のサイズのファイルを作成できる適切な Windows C/C++ API 関数を教えてください。ありがとうございました
java - Javaで空のフォルダを作成するにはどうすればよいですか?
Fileクラスを使用して、「C:/ Temp/Emptyfile」のようなディレクトリに空のファイルを作成しようとしました。ただし、これを行うと、「既に作成されたフォルダTemp」というエラーが表示されます。そうでなければ、それは私のためにそれを作成しません。
では、Java APIを使用して文字通りフォルダを作成するにはどうすればよいですか?