問題タブ [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 に答える
359 参照

c++ - VC ++ 11マップおよびマルチマップイテレータ(オーバーロード)C2535

新しいVS2012で遊んでいるところですが、おそらく新しいC++11で問題が発生しています。プロジェクト設定でプラットフォームツールセットをVS2010(v100)に設定すると、このコードのピースは完全に機能します。

.h:

.cpp:

しかし、VS2012(v110)でこれを変更すると、次のエラーが発生します。

VC ++ 11でオーバーロードが機能しないのはなぜですか?

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

c++ - typedef struct の拡張 (VC++11 との互換性)

私は、Visual C++ コンパイラ 2010 (および 2008) で作成され、動作するプロジェクトに取り組んでいます。新しい VC++11 を使用しようとしていますが、既に実装されている機能に問題があります。typdef struct atom_intmemory_orderは既に実装していますが、VC 11 でほぼ同じ関数を追加したため、これらのエラーが発生します。

実装を #if ステートメントにキャッチすると

動作しているように見えますが、VC 11 に実装されていない 1 つの関数が欠落しており、別の関数がパラメーターを変換できません

解決策を見つけるのを手伝ってください... VC++ 11からatomic_int全体をオーバーライドする方法、またはメンバーをに追加する方法は? ありがとうございました

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

c++ - このテンプレート コードが VS2010 では機能するのに、VS2012 では機能しないのはなぜですか?

テンプレート メタ プログラミングを多用するプロジェクトを継承し、現在 Visual Studio 2010 から 2012 にアップグレード中です。2012 年にはテンプレート コードの一部が機能しなくなりました。最小限の例を抽出しました。

次のエラー メッセージが表示されます。

のさらに下ではMyClass、 を使用できます。機能しないT::Nested<i>のは だけです。typedef

この例は 2010 年にコンパイルされますが、2012 年にはコンパイルされません。このコードの何が問題なのですか?

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

visual-c++-2012 - VC ++ 2012:version.inc(個別に管理)のバージョン情報を.rcファイルに含める方法

概要:バージョンの詳細をプリプロセッサマクロを介して個別に維持するように定義していversion.incます...マクロ値をリソースバージョン定義ブロックに含めるにはどうすればよいですか?

私のversion.incファイルはUTF-8(つまり、この場合は純粋なASCII)で保存されます。その完全な内容は次のとおりです(ここでのプレフィックスは、リソースコンパイラによって生成されAPS_たファイルではなく、アプリケーションの実際の名前に関連しています)。.aps

app.rcVisual Studio 2012 C ++は、Visual Studio 2010よりもリソーススクリプトファイル()についてより慎重になっているようです。私が最初に気付いたのは、手動で編集する場合、UTF-16エンコーディングを維持する必要があるということです。確認できますか?それに関するドキュメントはありますか?

app.rc次のような外観のバージョンブロックを言います。

Visual Studioの以前のバージョン(2005および2010)では、次のversion.rc2ような関連性を持つことができました。

次に、を手動で編集version.rc2してビアに含めました。ただし、VisualStudio2012プロジェクトとリソースファイルを使用してプロセスを繰り返すことはできません。私には見えない間違いをしているのかもしれません。そのアプローチはVisualStudio2012でも機能する必要がありますか?app.rcapp.rc

時間と経験をありがとう、

Petr

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

c++ - クラスのメンバーに、そのタイプ(別のクラス)と同じ名前を付けることはできますか?

異なるコンパイラで次のコードをコンパイルしようとすると、2つの異なる結果が得られます。

ご覧のとおり、内部Tには、以前に定義したクラスと同じ名前のオブジェクトがありますS


GCC 4.7.2では、内部の宣言に関連して次のエラーが発生します。S S;T

エラー:「ST :: S」の宣言[-fpermissive]
エラー:「S」の意味を「structS」から変更します[-fpermissive]

ただし、クラス外(またはクラス内main)に移動すると正常に機能します

それが私に与えるエラーとは正確にはどういう意味ですか?


Visual Studio 2012では、すべてがエラーなしでコンパイルおよび実行されます。このClang3.0コンパイラに貼り付けると、エラーも発生しません。

どちらが正しいですか?私は実際にこれを行うことができますか?

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

c++ - Visual C ++ 2012(x86)で考えられるコンパイラのバグ?

現在、 VC ++ 11(CTP Update 1)を使用してx86ターゲット用にコンパイルすると、ランダムな浮動小数点エラーが発生します。以下の短い例「test.cpp」を参照し、以下を使用してコンパイルしてください。

出力はである必要がありますが、 (プログラム全体の最適化)が有効になっている場合10 == 10に生成されます。問題は、結果を浮動小数点スタックにプッシュすることのようですが、呼び出し元の関数は、SSEレジスタXMM0に結果を期待しています。10 == 0/GLget_scaling_factor()

質問:私は明らかな何かを見逃していますか、それともこれは本当にバグですか?もちろん、テストプログラムは簡素化されたテストケースであるため、意味がありません。

test.cpp:


アップデート

Microsoftによって確認された問題。これは、次のような単純なコードにも影響します。

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

c++ - Win32 アプリケーションのハングをデバッグする

Win32 アプリケーションのハングの原因を特定できません。ソフトウェアは、いくつかのデータをタイトなループで OpenGL ビジュアルにレンダリングします。

このコードは、VC11 Update 1 (CTP 3) を使用してコンパイルされています。getIndices()最適化されたバイナリを実行すると、これらのループのいくつかの後に (これについては以下で詳しく説明します)への呼び出し内でハングします。私は既に持っています...

  • すべてのバッファをトリプル検証し、CRC を追加して、バッファ オーバーランが発生していないことを確認しました
  • ヒープが破損していないことを確認するために、ループ内にHeapValidate()への呼び出しを追加しました
  • 使用された ApplicationVerifier
  • GFlags と PageHeapを使用してヒープ割り当ての監視を有効にしました。
  • アプリケーションがロックアップしたときに WinDbg に侵入した

割り当てられたバッファにアクセスするコードに問題はなく、ヒープの破損もありませんでしたただし、断片化の少ないヒープを無効にすると、問題は解消されます。indicesバッファに別の(断片化の少ない)ヒープを使用すると、それも消えます。

とにかく、デッドロックにつながるスタックトレースは次のとおりです。

lc::db::PackedIndices::unpackIndices()完全を期すために、デバッグ用に追加されたすべてのコードを含む のコードをhttp://ideone.com/sVVXX7に投稿しました。

への呼び出しをトリガーするコードKiUserExceptionDispatcher(*p++) = static_cast<T>(index);( mov dword ptr [esp+10h],eax) です。

何が起こっているのか理解できないようです。例外がスローされたようですが、例外ハンドラが呼び出されません。アプリケーションがハングするだけです。デッドロックされたクリティカル セクション ( !lock) をチェックしましたが、何も見つかりませんでした。さらに、メモリの場所はすべて有効であるため、例外が発生する理由がわかりません。誰かヒントをくれませんか?

アップデート

スローされている例外のタイプを見つけようとしました:

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

c++ - std::mapに挿入するときの恒常性の問題

マップにペアを挿入しようとすると、不変性の問題が発生します。コンパイラエラーは次のとおりです。

エラーの原因となっている行は次のとおりです。

m_materialsマップは次のように宣言されています。

エラー1エラーC2166:l値はconstオブジェクトc:\ program files(x86)\ microsoft visual studio 11.0 \ vc \ include\utilityを指定します114

誰かが私がこの問題を解決する方法を説明できますか?

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

c++ - VS 2012の可変個引数テンプレート(Visual C ++ 2012年11月CTP)

Visual C ++コンパイラ2012年11月CTPをインストールし、C++コンソールプロジェクトを作成しました。私はこれを書いた

次に、F6キーを押してIDEを組み込みました。4行目でこのエラーが発生しました

コンパイルリストは「可変個引数テンプレート」なので、これでうまくいくと思います。インテリセンスが正しくない可能性があることは理解していますが、「コンパイラ」は機能するはずです。IDEからビルドできませんか?どこかで何かを有効にする必要がありますか?int i{4};どちらも機能していないようで、有効な均一初期化であると確信しています。

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

visual-c++ - CMake、C ++、およびVisualStudio2012を使用したプロファイリング

CMake 2.8.10.1を使用して、Visual Studio 2012 Ultimate(64ビット)用のプロジェクトファイルを生成しています。結果として得られるソリューションには、ライブラリ、いくつかのテスト、およびいくつかの実行可能ファイルが含まれています。

いくつかのアプリケーションのプロファイルを作成したいと思います。[分析]->[パフォーマンス分析の開始]を選択すると、「プロファイリングに使用できる起動可能なプロジェクトがありません」というエラーメッセージが表示されます。CMakeによって生成されたソリューションのプロファイルを作成するにはどうすればよいですか?