問題タブ [visual-c++-2008]
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++ - VC9 の文字列ストリームのバグ? 「プライベートメンバーにアクセスできません」
次のエラーが表示されます。
エラー 11 エラー C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios': クラス 'std::basic_ios<_Elem,_Traits>' c:\program files\microsoft visual studio 9.0\vc で宣言されたプライベート メンバーにアクセスできません\include\sstream 517
istringstream を使用すると、同じことが起こります。
コンパイラ: Visual C++ 2008.
c++ - Visual C++6からVisualC++2008Expressへの移行
コードをVCpp6からVCpp2008Expressに移行しようとしていますが、ソリューションをビルドすると、次のエラーメッセージが表示されます。
このようなエラーはたくさんあり、「;」、「)」を予期することもあります。
ありがとう、レアンドロ・リマ
c++ - vc6 dll から wstring を作成するときのポインタまたはリンクの問題
VC6 で生成された DLLwstring
を使用して、VC9 プロジェクトで使用しようとしています。この DLL にはwstring
、 と呼ばれるを操作する上位レベルのクラスがありUtfString
ます。
プロジェクトにすべてが正しくインポートされましたが、呼び出すと:
関数プロトタイプがライブラリにある場合でも、リンクしません...
もう 1 つの発行者は、新しい UtfString を作成し、アプリをデバッグすると、新しいポインタが<Bad Ptr>
.
wstring
VC6と VC9の競合が疑われますが、よくわかりwstring
ません。元の Dll を変更することは避けたいです。
誰かが私のために物事をより明確にし、問題の本当の理由が何であるかを説明してくれれば素晴らしいと思います.
回答ありがとうございます、ボリス
c++ - プリプロセッサで「Use MFC」を検出する方法
静的 Win32 ライブラリの場合、「MFC を使用する」オプションが設定されていることをどのように検出できますか?
すなわち
c++ - vc9 と gcc でデストラクタの動作が異なる
次のコードは、GCC と vc9 でコンパイルすると、異なる数のデストラクタを示します。私の知る限り、vc9 で実行すると、5 つのデストラクタが表示されますが、これは理解できます。+ オーバーロードされた演算子が呼び出され、一時オブジェクトが作成されると、2 つのオブジェクトが作成されます。これにより、3 つのオブジェクトの破壊が可能になります。オーバーロードされた = 演算子が呼び出されると、1 つのオブジェクトが作成され、返されるときに再び一時的なオブジェクトが作成されます。これにより、main の開始時に作成された 3 つのオブジェクトを数えずに、合計で 5 つの destruct になります。
しかし、GCC でコンパイルすると 3 になります。
関数が終了して返されたときに一時オブジェクトが作成されていないと推測するのはなぜですか? またはコンパイラ間の異なる動作についての質問。私は単に知りません、そしていくつかの明確化がいいでしょう。
c++ - これは警告レベル 4 の VC9 で警告なしにコンパイルされます。これをコンパイラの欠陥と見なさないのはなぜですか?
SO で範囲外のエラーが発生している投稿されたコードを見て、不思議に思いました。コンパイラがこのコードに対して(少なくとも最高レベルで)警告を生成することを期待します
しかし、そうではありません。
EDGコンパイラはうまく言っています:
実際、EDGはもう少し多くのことを言っています(すべて予想されます)
しかし、それは私の質問ではありません。
私は、この失敗が VC9 での省略の深刻なエラーを警告していると考えています (auto 変数以来、なおさらです!!!!)。考えを変える重大な理由を教えてくれる人はいますか?
c++ - プロセッサ タイプのランタイム検出 - アトミック操作
速度が重要なマルチスレッド コードを実装しています。いくつかの基本的な書き込み操作がアトミックであることを確実に知っていれば、いくつかのクリティカル セクションを避けることができます。私は次のような学術論文を読みました。
「サイズ t、int、float、およびポインターの基本型の書き込みはアトミックである必要があります。1 つのスレッドによる書き込みは、同じ順序で他のスレッドによって認識される必要があります。最新のほとんどで使用されている IA-32 および Intel-64 CPU アーキテクチャー標準的なコンピューターは、これらの仮定を保証します。」
私がやりたいことは、プロセッサがこれらの操作がアトミックなタイプであるかどうかを実行時に検出できるようにすることです。- AMD プロセッサでも動作するようにしたいと思います。
c++ - VC6 でビルドした C スタイル ライブラリを VC9 プロジェクトで直接使用できますか?
VC6 コンパイラで構築された内部ライブラリ (他のチームによって開発された) を使用します。このライブラリには、主に C スタイルの API が含まれています。Visual Studio 9 コンパイラに移行する計画があります。ライブラリを VC9 コンパイラでビルドするように要求する必要がありますか?
より一般的な質問です。Visual Studio コンパイラの 2 つの異なるバージョンでビルドされた DLL は、どの点 (名前マングリング、最適化など) で異なりますか?
visual-studio-2008 - どのC/C++オブジェクトが最も多くのメモリを使用しているかを判断する方法
メモリーフットプリントが高い混合モードアプリケーション(マネージドおよびネイティブ)があります。私はすでに、メモリのほとんどがネイティブコードによって割り当てられていることを知っています。私はメモリリークについて話しているのではなく、プログラムの開始後非常に早い段階で発生し、その後比較的安定している高いメモリ消費について話している。
どのC/C ++オブジェクトが最も多くのメモリを使用しているかを示すツールを知っていますか?DebugDiag 1.1とSoftwareVerifyのメモリバリデーターをすでに試しましたが、どちらのツールもC /C++オブジェクトを識別するのに十分な情報を提供していません。
よろしく
フランク
visual-c++ - Visual C++ 2008 x64 ビルドが x86 ビルドよりも 5 倍遅いのはなぜですか?
製品のビルド時間を改善しようとしています。継続的インテグレーションを使用しており、ビルドの実行に 2 時間かかっています。
NANT のタイミングを調べたところ、本来よりも遅い場所がたくさんありましたが、飛び出したのは Visual C++ プロジェクトの x64 ビルドです。同じコードの x86 ビルドと比較したタイミングの例を次に示します。
Win32 のリリース: 8' 49" x64 のリリース: 41' 8"
x64 は約 5 倍遅いです。繰り返しますが、これはまったく同じコードです。
x86 と x64 の間でこの種のビルド時間の不一致を経験した人はいますか? ギャップを埋めるための提案はありますか?
注: Xoreax 分散ビルドや TeamCity 同時ビルドなど、ビルド パフォーマンスを全体的に向上させるツールがあることは認識しており、それらの両方も調査するつもりですが、何らかの方法で取得する必要があると感じずにはいられません。 x64 ビルドは、サード パーティのツールに頼ることなく元に戻ります。