問題タブ [visual-c++-2013]
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.
c++ - DWORD 値を void* 値に変換する方法は?
これらの と以下の値が与えられtypedef
た場合:
C++ でそのデバイス SDK 関数のニーズを満たすように変換するにはどうすればよいですか?
サンプルの C 参照コードは次のとおりです。
以下で試してみましたが、変です。それは問題なくコンパイルされ、一日中動作し、不気味な運によって、アクセス違反が突然発生し始めます。
私が間違っていることは何ですか?
c++ - 罪は正しい値を与えていません
値 90 の変数 a を入力すると、0.893997 が得られます。また、変数を int または float にすると、同じ値が得られます。
c++11 - std::condition_variable wait_until 驚くべき動作
VS2013 でビルドtime_point::max()
し、条件変数のwait_until
結果に指定するとすぐにタイムアウトになります。
time_point::max()
これは直感的ではないように思えます -無期限に (または少なくとも非常に長い時間)待機することを素朴に期待します。これが文書化されているのか、予想される動作なのか、MSVC に固有のものなのか、誰でも確認できますか?
以下のサンプルプログラム。に置き換えるtime_point::max()
とnow + std::chrono::hours(1)
、予想される動作が得られることに注意してください(wait_for
cv が通知されると、タイムアウトなしで終了します)
visual-studio - F5 または CTRL + F5 を押した後、Visual C++ Win32 でデバッグを開始するのに時間がかかる
私は、Windows 10 で Visual Studio 2013 Professional Update 5 を使用しています。以下に示す簡単な Hello World プログラムを作成しました。
このコードを Win32 用に再構築 (デバッグまたはリリース) し、デバッグなしで実行 (CTRL + F5) すると、コンソールが表示されますが、「Hellow World」が表示されるまでに約 10 ~ 15 秒かかります。再構築せずにコードを再度実行すると、「Hello World」を含むコンソールがすぐに表示されます。これは、プラットフォームを「Win32」に設定した場合にのみ発生しますが、構成は「デバッグ」または「リリース」にすることができます。
プラットフォームを「x64」に設定すると、すべて正常に動作します。つまり、「デバッグ」と「リリース」の両方で、すぐに「Hello World」が表示されるコンソールです。
この問題は非常にイライラするので、どんな種類の助けも本当に感謝しています.
avx - MSVC 2013: AVX2 を適切に有効にする方法は?
その命令セット (i7 4770 および i7 4800MQ) をサポートする必要がある CPU で実行しているため、/arch:AVX2 をオンにして、特定のソフトウェアのより高速なバイナリを取得しようとしています。
ただし、そうすると実行可能ファイルが生成され、AVX2 以外のハードウェアで実行しているかのように、「xxx.exe が動作を停止しました」というメッセージが表示されてクラッシュします。
AVX2 ハードウェアを検出し、対応する実行可能ファイルを実行する y-cruncher を実行することで、私のシステムで AVX2 が正しくサポートされていることがわかりました。
/arch:AVX を指定すると、同じ問題が発生します。
/arch オプションなしでビルドすると、コードは正常に実行されます。その他に使用されるビルド オプションは次のとおりです。
ソフトウェア自体は、より幅広いプラットフォームで実行するように設計されているため、特定の AVX2 組み込み関数を使用しません。コードを変更せず に、自分のプラットフォームでより良いパフォーマンスを得ようとしているだけです (これは複雑なソフトウェアであり、私は専門のプログラマーではありません)。
私の質問は、なぜそのオプションが AVX2 対応のマシンでプログラムをクラッシュさせるのでしょうか? 他のフラグとの非互換性など、/arch:AVX2 の正常な動作を妨げるものがないのでしょうか? (MS ドキュメントを確認したところ、AVX2 に関連する「相互依存関係」は見つかりませんでした)。
編集: Regis Portalez が提案したように、コードに関する情報をここに追加します。問題の原因となっているコード スニペットを次に示します。アクセス違反を示す最後の行の前に VS デバッガーが停止します。
以下は、最後の行のアセンブリ コードです。
デバッガーは、アクセス違反がvbroadcastssで発生していることを示しています。レジスタの内容は次のとおりで、位置 0 を読み取ろうとしていることが示されています。
比較として、 /arch:AVX2 を使用しない場合のアセンブリは次のとおりです。
アクセス違反に関係するグループオブジェクトは次のように定義されます。
この情報により、さらに分析が可能になることを願っています...
c++ - ビジュアルC ++でFile::ReadAllBytesを使用するには?
Visual Studioには、ファイルを読み込んでバイト配列を返す簡単なメソッド「File::ReadAllBytes」があるのですが、使い方がわかりません。以下を試しましたが、すべてうまくいきません。