問題タブ [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++ - msvc2008 での失敗した vsnprintf からの gracefly の回復
vsnprintf()
ユーザーにエラーをトリガーすることなく、入力バッファーよりも長くなる可能性のあるバッファーを使用して、いくつかのバリアントを使用する方法を探しています。
これまでのところvsnprintf()
、バッファーが小さすぎると文字列が静かに切り捨てられることがわかりましたが、文字列の実際の長さは返されないため、より長いバッファーで再試行することはできません。-1 を返します。
一方、vsnprintf_s()
バリアントは、このエラーに直面すると、
_CrtDbgReportW()
おそらくデバッグでのみ、最終的に を呼び出します。ユーザーが提供した「無効なパラメーターハンドラー」を呼び出す前であっても、これを行います。
私が望むのは、割り当てる必要がある実際のサイズを取得して関数を再度呼び出すことにより、ユーザーの操作なしで回復できることだけです。それは可能ですか?
assembly - VC++ 2K8 での SSE コーディングのための組み込み関数とインライン ASM の比較
以前に SSE のインライン ASM コーディングを行ったことがありますが、ASM を知らない人でもそれほど難しくはありませんでした。しかし、MS はそのような特別な命令の多くをラップする組み込み関数も提供していることに注意してください。
特定のパフォーマンスの違い、または一方を他方の上に使用する必要があるその他の強い理由はありますか?
タイトルから繰り返しますが、これは VC++ 2008 によって公開されたアンマネージ ネイティブ C++ の組み込み関数を具体的にカバーしています。
visual-studio-2008 - VS 2008 刺激的なコピー コンストラクター リンクの依存関係
Visual Studio 2008 C++ コンパイラで、次の迷惑で一見正しくない動作に遭遇しました。
「Car.h」というヘッダーを持つ「Car」クラスを使用するクラスライブラリー Car.lib があるとします。
私が実際にやろうとしているのは、(他のいくつかの機能のために) Car ヘッダーを使用することですが、Car.lib 自体とリンクする必要はありません (実際のクラスは「Car」とは呼ばれませんが、この例をサニタイズしています)。
マネージ C++ .dll のビルドに使用する .cpp ファイルに "Car.h" を #include し、Car を参照しないと、すべてが正常にコンパイルおよびリンクされます。これは、Car オブジェクトをインスタンス化しないためです。
ただし、次のとおりです。
リンクエラーが表示されます:
すべてを匿名名前空間内で宣言したので、Car 関数を .DLL からエクスポートすることはできません。
Car が他の場所で参照されていないことを断固として保証できます。これは、このクラスを作成し、最初から定義を入力したからです。「本当の」クラスは別の名前です。
コピーコンストラクターをアウトオブラインで宣言しても違いはありません。つまり、以下もリンクに失敗します:
たとえば、次のようにリンクしているため、これは特にコピー コンストラクター ノートと関係があります。
私は C++ 標準の第一人者ではありませんが、これは正しくないように思えます。確かに、コンパイラは、Car コピー コンストラクターを呼び出すコードを生成する必要さえなかったはずです。
この動作が正しいかどうかは誰でも確認できますか? C++ を使用してからしばらく経ちましたが、たとえば Visual Studio 6.0 ではこれが問題になることはなかったと思います。
マネージ C++ .dll をビルドしていることが原因である可能性があります。(後で: はい、これはまさに問題です。 /clr オプションは、この依存関係を導入しているようです)。
プロジェクトのビルドに使用されるコマンド ラインは次のとおりです。
コピー コンストラクター内から Accelerate メソッドを「再利用」し、コピー コンストラクターをインラインで宣言できるようにする回避策を提案できる人はいますか?
c - 例外でVC++のデバッガーを中断させるにはどうすればよいですか?
アクセス違反を引き起こし続けるCで書かれたDLLの問題をデバッグしようとしています。Visual C ++ 2008を使用していますが、コードはストレートCです。
私はDelphiに慣れています。デバッガで実行中に例外が発生すると、プログラムはすぐにデバッガにブレークし、プログラムの状態を調べる機会が与えられます。ただし、Visual C ++では、[出力]タブにメッセージが表示されるだけです。
First-chance exception at blah blah blah: Access violation reading location 0x04410000.
休憩なし、何もありません。Delphi EXEに戻るまでスタックを巻き戻します。これにより、問題が認識され、そこで警告が表示されますが、その時点で、コールスタックのいくつかのレイヤーが失われ、何が起こっているのかわかりません。
私は他のデバッグ手法を試しましたが、それが行っていることは、500回以上呼び出されるCマクロ内のネストされたループの奥深くで行われており、それは私のスキル(または私の忍耐力)を少し超えています。
実際にそれを処理するための「チャンス」を私に与えるには、「ファーストチャンス」例外を取得するための何らかの方法が必要だと思います。おそらく、私が知らない「最初のチャンスの例外ですぐに中断する」構成設定があるかもしれませんが、それはそれほど発見可能ではないようです。
誰かがそれがどこにあり、それを有効にする方法を知っていますか?
c++ - デフォルト引数としての std::make_shared はコンパイルされません
Visual C++ (2008 および 2010) では、次のコードは次のエラーでコンパイルされません。
エラー C2039: 'make_shared' : '`グローバル名前空間'' のメンバーではありません
エラー C3861: 'make_shared': 識別子が見つかりません
::Foo() ではなく P::Foo() の定義について不平を言っています。
P::Foo() ではなく std::make_shared でデフォルト引数を持つことが Foo() にとって有効である理由を誰かが知っていますか?
visual-c++ - Visual C++ 2008 が Windows で宣言された型を認識しない
最新の U3D ソフトウェアで宣言された型を認識しないようなプログラムがあります。線があります
エラーが発生します:
エラー 1 エラー C2061: 構文エラー: 識別子 'LPMONITORINFOEX' c:\Projects\U3D\Source\RTL\Platform\Common\Win32\IFXOSRender.cpp 28
と一行
取得する
エラー 5 エラー C2065: 'miMon': 宣言されていない識別子 c:\Projects\U3D\Source\RTL\Platform\Common\Win32\IFXOSRender.cpp 49 エラー 3 エラー C2065: 'MONITORINFOEX': 宣言されていない識別子 c:\Projects\U3D\ソース\RTL\プラットフォーム\共通\Win32\IFXOSRender.cpp 49
プログラムの最初の非コメント ステートメントは、これらの識別子を定義する#include <windows.h>
を含むです。winuser.h
Visual Studio では、それらを右クリックして定義 (typedef) に移動し、typedef から構造体に移動できます。 WINAPI
で定義されWinDef.h
ているので、うまくいっているようです。LPMONITORINFOEX
またはの再定義はMONITORINFOEX
、他のファイルにはありません。
では、これはどのように発生するのでしょうか。また、どうすればよいでしょうか。
visual-c++ - VC++ 2008 でライブラリを追加できません: システムが異なります
うまくいけば、誰かがここで何が起こっているのか教えてくれます。gdiplus.lib にリンクしようとしていて、「プロパティ - リンカー - 入力 - 追加の依存関係」に移動してライブラリを追加しようとしましたが、そのセクションがありません。Visual C++ 2008 を使用しています。次のように表示されます。
- 共通プロパティ
- フレームワークとリファレンス
- 構成プロパティ
- 全般的
- デガギング
- C/C++
- 司書
- 資力
- XML ドキュメント ジェネレーター
- 閲覧情報
- ビルド イベント
- カスタム ビルド ステップ
すべてのサブカテゴリを確認しましたが、「リンカー」セクションや「入力」セクションはありません。繰り返しますが、これはカスタマイズや奇妙な設定のない Visual C++ 2008 です。誰かが興味を持っている場合は、 http://drp.ly/13ma9lにスクリーンショットがあります。
私のプロパティ パネルが他の人とはまったく違うのはなぜですか? 典型的なマイクロソフトのがらくただと思います...
c++ - CRT でファイル読み取りエラーをシミュレートする方法
VS2008 を使用して、サイズが X であるが、XY バイトで読み取りに失敗したファイルをシミュレートして、エラー表示を取得したいと考えています。
Windowsでこれを行う方法を知っている人はいますか? Linux 用のソリューションがあるように見えますが、Windows でこれを行う方法を実際に思いつくことはできません。複数の開発者、複数のマシン、および cppunit テスト フレームワークがあるため、ソフトウェアのみの設計が必要です。
実際の CRT の障害をシミュレートしようとしているので、障害を処理しているコードをテストできます。
visual-c++-2008 - 私のコードはデバッグモードで動作しますが、リリースモードでは動作しません
Visual Studio2008のC++に、fopenとfcloseだけでファイルを処理するコードがあります。デバッグモードではすべてが完璧に機能します。そして私はいくつかのデータセットでテストしました。ただし、リリースモードでは機能しません。いつもクラッシュします。私はすべての最適化をオフにしました。また、(リンカー内の)何にも依存していません。また、これらを設定しました。
最適化:無効(/ Od)参照されていないデータを保持します。Windows98用の冗長オプティマイズを削除しないでください:いいえ
私はまだそれがこれらの状況の下でどのように機能するべきではないのか疑問に思っています。デバッグモードのように機能させるには、他に何をオフにする必要がありますか?
リリースモードで動作するがデバッグモードでは動作しない場合は、コーディング障害である可能性がありますが、逆の場合は奇妙に見えます。ではない?
助けていただければ幸いです。-ニマ
visual-c++ - std::vector の奇妙な動作
私はこのようなクラスを持っています:
これは私のコードの簡略版です。問題は、デバッグモードで完全に機能することです。しかし、リリースモードでは「push_back」行でクラッシュします。(すべての最適化フラグをオフにして)リリースモードでデバッグしましたが、問題はAのコンストラクターにあります.ベクトルのサイズはダミー値で非常に大きく、クリアしても変化しません...
なぜなのかご存知ですか?
ありがとう、