問題タブ [visual-c++-2012]

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.

0 投票する
2 に答える
2266 参照

c++ - ここでループが運ぶ依存関係はどこにありますか?

VS2012のC++コンパイラで自動ベクトル化できない理由について私が見ていない以下のループコードについて明らかなことを誰かが見ていますか?

コンパイラが私に与えるのは、コマンドラインスイッチinfo C5002: loop not vectorized due to reason '1200'を使用するときだけです。/Qvec-report:2

Reason 1200は、MSDNで次のように文書化されています。

ループには、ベクトル化を妨げるループで運ばれるデータ依存関係が含まれています。ループの異なる反復は互いに干渉し合うため、ループをベクトル化すると間違った答えが生成され、自動ベクトル化機能はそのようなデータ依存性がないことを証明できません。

ループで運ばれるデータの依存関係がないことは知っていますが(またはかなり確信しています)、コンパイラーがこれを実現するのを妨げている原因はわかりません。

これらsourcedestポインタは同じメモリをオーバーラップしたりエイリアスしたりすることはなく、コンパイラにそのヒントを提供しようとしてい__restrictます。

pitch4096これは8bpp->32bppのレンダリング/変換関数であり、列ごとに動作するため、画面の解像度に応じて、は常に正の整数値になります。

それぞれの周りのsource[]親は、最も単純な形式で、関数呼び出しなしではループが自動ベクトル化されないため、ここで省略した関数呼び出しの残骸です。

編集:

ループを単純化して、次のような最も簡単な形式にしました。

これでも、同じ1200理由コードが生成されます。

編集(2):

ローカル割り当てと同一のポインタータイプを使用したこの最小限のテストケースでも、自動ベクトル化に失敗します。私はこの時点で単に困惑しています。

0 投票する
1 に答える
847 参照

c++ - mingw で Qt 5.0 をビルドする

Qt 5.0 を mingw64 または Visual Studio 2012 でビルドする方法はありますか?それとも次のリリースを待つ必要がありますか? 次のリンクで、 mingw64を使用して qt 5.0 をビルドする手順を試しました。 mingw64 (または Visual C++ 2012)?

0 投票する
2 に答える
8101 参照

c++ - Visual Studio 2012 で、32 ビット x64 クロス コンパイラではなく、ネイティブの 64 ビット Visual C++ コンパイラを呼び出す方法を教えてください。

Visual Studio 2012 は、 にある 64 ビット バージョンではなく、 ) にcl.exeあるの 32 ビット バージョンを常に呼び出すようです。%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\x86_amd64%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\amd64

プロパティ シートのVC++ ディレクトリセクションに$(VCInstallDir)bin\amd64ある「実行可能ディレクトリ」リストの先頭に追加しようとしましたが、まったく機能しません。再構築すると、次のエラーが発生します。Microsoft.Cpp.x64.user

Visual Studio 2012 でネイティブ 64 ビット C++ コンパイラを使用するにはどうすればよいですか?

0 投票する
1 に答える
3929 参照

c++ - C4100 テンプレートで使用された場合の「参照されていない仮パラメータ」

これは問題にならないほど単純に思えますが、私はそれを見ていないので、助けていただければ幸いです。

パラメータを受け取り、そのパラメータをテンプレートで使用する関数があります。コンパイラ (Visual C++ 2012) は、C4100 の「参照されていない仮パラメータ」警告を生成しています...これは迷惑です。パラメータが参照されていないと考える理由がわかりません。

これをコンパイルすると、「警告 C4100: 'factory' : 参照されていない仮パラメーター」が生成されます。

「factory」は、その「instance()」関数がマクロ展開後に 2 回呼び出されるため、明らかに参照されていると思います。ここでは、コードが次のように展開されると仮定します。

コードは正常に機能しますが、理解できないという警告が表示されるだけです。私の実際のコードでは、マクロと関数は別のプロジェクトと別のファイルにありますが、簡単にするために一緒に含まれていることに注意してください。

0 投票する
1 に答える
521 参照

c++ - std::thread コンストラクターの可動パラメーター (Visual C++ 2012)

MSVC 2012 の右辺値参照で問題が発生しました。

コンパイラのメッセージ:エラー C2664: 'void (std::promise<_Ty> &&)' : パラメーター 1 を 'std::promise<_Ty>' から 'std::promise<_Ty> &&' に変換できません

私の間違い(それを修正する方法)またはコンパイラの問題(そのような動作の起源を知りたい)はありますか?

0 投票する
2 に答える
6829 参照

visual-studio-2012 - Visual Studio 2012 での Visual C++ の前提条件の欠落

vs2012ClickOnce アプリケーションを最近インストールし、更新しました。C++ projectより正確に言うと、 (私の主要な c# プロジェクトに依存する)初めて開いたときは、更新しておらず、すべて正常に機能していました。VS 2012Visual C++ 2010 の前提条件がまだ表示されていました。その後、Platform Toolset を"Visual Studio 2012 (v110)"underに変更してプロジェクトを更新しましProperties->Configuration Properties->Generalた。

その間、他のものもインストールsoftwareしましたが、ClickOnce パブリッシングのためにプロジェクトに Visual C++ の前提条件を追加できなくなっていることがわかりました。Visual C++ 2010 Runtime Libraries (x64)前提条件は黄色の三角形でマークされており、欠落しています。理想的には に更新したいのですVisual C++ 2012 Runtime Libraries x64 (and x86)が、この前提条件さえありません。

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packagesフォルダー内の対応するパッケージ(vcredist_x64)が空であることが原因だと思います。Microsoft Visual C++ 2010 x64また、コントロール パネルのインストール済みプログラムのリストに、再頒布可能バージョンとランタイム バージョンの両方がインストールされていることに気付きましたx86(Visual Studio 2010 で以前にインストールされていたと思います)。一方、Visual C++ 2012 がありませんでした。ファイル。したがって、Visual C++ 2012 は Visual Studio 2012 と一緒に提供されなかったと主張していますね。Visual C++ 2012 Redistributable x64パッケージをダウンロードしてインストールしようとしたこともありましたが、インストールされたプログラムに表示されるようになりました (ランタイム バージョンではなく、再頒布可能パッケージのみ)。

ただし、前提条件がまだ不足しています。どうすればこれを解決できますか? ... フォルダーにある Visual C++ 2010 用のブートストラップ パッケージを手動でコピーし、C++ 2012 用に手動で変更することも考えましたが、の下\v7.0A\Bootstrapper\Packagesに何を記述すればよいかわかりません。この情報を挿入するための製品 GUID は Bootstrapper Manager で取得できるようですが、このプログラムは例外が多くスローされており、その方法がわかりません。2 番目の解決策として、Visual C++ 2010 のパッケージを から単純にコピーしても安全ですか?product.xml<MsiProductCheck Property="VCRedistInstalled" Product=?>\\v7.0A\Bootstrapper\Packages\Bootstrapper\Packages to \v8.0A\Bootstrapper\Packages

0 投票する
1 に答える
239 参照

visual-studio - これは VC++ オプティマイザーまたは私のコードのバグですか?

VS2012 Update 1 によって生成されたコンソール プロジェクトを使用して、次のベクトル減算コードを試しました。グローバル最適化を無効にし、アセンブラー リストを有効にする以外のデフォルト オプションには実際には触れませんでした。

Windows 7 x64 SP1 上の x64 リリース構成でコンパイルされています。

リリース モードで生成されたアセンブリ:

そのため、vals は入力と同じであるかのように誤って扱われ、結果は常に 0 になります。また、誤った最適化のために xmm0 が使用されなくなったにもかかわらず、まだ破棄されていないことも興味深い点です。printf のコメントを外すと、生成されたコードは正しいものになります。

質問は、私のコードに何か問題がありますか? 私には、オプティマイザーのバグのように見えます。

0 投票する
3 に答える
929 参照

c++ - VS 2012(Visual C):エラーC2143:構文エラー:ミス ";" 前 "*"

「iterator_of_array_int.h」でこのエラーが発生しました:

"array_of_int.h"

「array_of_int.h」を含めました。どうしたの???

0 投票する
1 に答える
792 参照

mfc - MFC は LineTo で長方形のエッジを描画しません

MFC CDC クラスと LineTo および MoveTo 関数を使用して描画するときに問題があります。CDC オブジェクトは、ポインターを移動した時点から始まらず、画像の中央のように最初のピクセル ブランクを残します。画像の左側のように角を描くと、CDC オブジェクトが最も外側のピクセルを解放していることは明らかです。カスタム ブラシを読み込もうとしましたが、異なる結果は得られませんでした。

エッジの例

0 投票する
2 に答える
1288 参照

windows-phone-8 - Visual C++ のバイト配列パラメーター

私はビジュアルC ++が初めてです..hファイルに次のようなメソッドがありました:

ここでは、バイト配列をパラメーターとして渡す必要があり、それを .cpp ファイルに実装する必要があります。このために、Windows Phone 8 で作業しています。Windows Phone ランタイム コンポーネントのビジュアル C++ プロジェクトを含める必要があります。このメソッドを C# クラスで使用し、そこからバイト配列を渡す必要があります。しかし、C ++でバイト配列メソッドを宣言する方法がわかりません。誰でも解決策を見つけるのを手伝ってくれませんか。