問題タブ [msvcrt]
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++ - VS 2008 で _osfile() を呼び出す CRT のアサーション エラー?
長い間機能している C++ コード ベースがあります。コード ベースは、私が最近 VS 2008 に移行した従来の VS 2003 プロジェクト セットでした。結果のプログラムがビルドされ、実行されるという点で、移行は成功したように見えました。
OS とすべてのアプリケーションを新しいドライブに再インストールしましたが、デバッガー内でプログラムをデバッグしようとすると、CRT 内でアサーション エラーが発生しますchsize
(実際には_chsize_s
)。具体的には(安全チェックを無視して、必需品にトリミング):
デバッグ アサーションはchsize
、具体的には CRT のソース コード ファイル chsize.c 内の次の行で発生します。
...どこにfiledes
一致しますかfilehandle
。
一部のサードパーティ ライブラリでは再配布可能な VS 8.0 が必要なため、新しいシステム (VS 2008 のみ) に古いバージョンの VS がインストールされていないことが原因で問題が発生する可能性があると考えました。 VS 2008を使用しても問題ありません。したがって、VS 2005をインストールしました(2003ではありません)。ただし、問題は引き続き発生します。
どんな提案でも大歓迎です。
*更新 - この問題は とは無関係chsize
です。以下の私の答えを見てください。
msvcrt - MSVCRTの「ハードリンクの作成」機能の名前は何ですか?
この回答のバグを修正するには:MSVCRTでハードリンクを作成するための関数の正しい名前は何ですか?
wix - WiX によるランタイム ライブラリの自動インストール
ファイル セットに C++ ランタイム DLL への 1 つ以上の依存関係を持つ DLL が含まれている場合、VCRedist.exe からファイルをインストールする必要があります。各 DLL は C++ ランタイムの特定のバージョンに依存しているため、これは難しい場合があります。
ランタイム再配布可能ファイルをインストーラーに自動的に追加するにはどうすればよいですか?
WinSxS で異なるバージョンの C++ ランタイムを必要とする DLL を処理するにはどうすればよいですか?
dll - DLL Delay-Load Handler 関数で MSVCRT 関数を使用できますか?
http://msdn.microsoft.com/en-us/library/151kt790.aspxの手順を使用して、プロジェクトに遅延読み込みを既に追加しました 。
"delayhlp.cpp" (DLL ロード ヘルパーのサンプル実装)__HrLoadAllImportsForDll
では、ライターが標準 C ライブラリ (MSVCRT) 関数の使用を避けていることがわかりました。サンプル DLL ロード ヘルパーによって呼び出されるハンドラー関数で同じことを行う必要がありますか?
筆者の理由は、誰かが MSVCRT 自体を遅延ロードしようとする可能性があるためだと思います。私はこれをするつもりはありません。MSVCRT 関数を使用しても安全でしょうか?
背景情報 サード パーティの DLL を遅延ロードする理由は、2 つのバージョン間で関数のシグネチャが変更されているためであり、どちらかのバージョンを使用してプログラムを実行する必要があります。次に、単純なラッパー関数を提供して、DLL の関数シグネチャを必要なものに適合させます。この関数は、失敗した__pfnDliFailureHook2
ときに Delay-Load Handler ( )によって登録されGetProcAddress
ます。
いくつかのテスト。ハンドラ関数の先頭にブレークポイントを追加しました。ブレークポイントに到達するmsvcrt.dll
と、 msvcr90d.dll
(Visual Studio の [モジュール] ペインから) などは既に読み込まれていることがわかりました。CRT 関数を安全に呼び出すことができるということですか?
c++-cli - /MTd CRT を使用したネイティブ C++ exe で /MDd CRT を使用した CLI C++ dll を使用する
/MTd ランタイム ライブラリを使用するネイティブ C++ exe があります。この exe のビルドをあまり制御できないため、このオプションを変更することはできません。STL ベクトル メンバー変数を持つクラスを返すこの exe で CLI C++ dll を呼び出す必要があります。CLI C++ メソッドの戻り時に、ヒープ破損エラーが発生します。私の分析によると、これは 2 つの異なる CRT があり、ベクトルの割り当て解除メソッドがネイティブ CRT で実行され、無効なアドレスが原因で爆弾が発生するために発生します。
ネイティブ exe で実行するために別の CRT でコンパイルされた CLI C++ dll からベクトルを返すにはどうすればよいですか?
c - 接続された TCP ソケットから送信元 IP とポートを特定できますか?
サーバーに、接続された TCP ソケットからクライアントのソース IP とポートを判別させたいと考えています。私のクライアントは NAT の背後にある可能性が高いため、(接続のプロトコルで) クライアントからの指示に頼ることはできません... これが可能であれば、Windows と Linux の両方に実装する必要があります。 ..しかし、どちらかに対する答えは、私が始めるのに役立ちます...
私は C を使用しており、libc または msvcrt ベースのソリューションを探しています。
c++ - .crt セクション? この警告はどういう意味ですか?
最近、この警告が表示されました (VC++ 2010)
warning LNK4210: .CRT section exists; there may be unhandled static initializers or terminators
これがクリティカルセクションだと思います。オペレーティング システムのコースを受講してからしばらく経ちましたが、これが何を意味するのかよくわかりません。私の記憶が正しければ、クリティカル セクションは共有リソースで機能します。では、この警告はどのように関連しており、正確には何を意味するのでしょうか?
c++ - すでに定義されていることによるリンカーエラー
LibCurlを使用する.dllプラグインを作成してから約1年が経ちましたが、今夜は別のプラグインから始めることにしました。残念ながら、私はほぼ4時間同じリンカーエラーと戦ってきましたが、完全に迷子になっています。
私は静的にLibCurlを構築していますが、次のリンカーエラーが発生することを除いて、ほとんどの部分で問題がないようです。
私が試してみました...
1)LNK2005はこれが原因であるとMSDNが言ったため、含まれているライブラリを再編成しました。
2)MSVCアプリケーションを使用して、次にコマンドラインツールを使用してLibCurlライブラリを再構築します。
3)問題を引き起こしているライブラリを除外します。
そして今でも思い出せないたくさんのこと。誰かが私がこれらを解決する方法についていくつかの情報を手伝ってくれますか?
debugging - _CrtSetReportHook から例外をスローできますか?
C++ プログラムを使用していると仮定して、これらのレポートを例外に変換したいと考えています。C++ の throw ステートメントを使用するのが合理的な方法ですか、それとも stderr にリダイレクトするだけですか?
c++ - MSVCRT strtod / sscanf/atof関数からNaNを取得できません
NaN
Windows CRTstring
からfloat
関数にsを取得する方法はありますか?
理由:丸めモードが変更されない限り、情報を失うことなく( 、または元の値を返す)、IEEEfloat
をstring
Cでコンバーターに書き込んでいます。strtod
sscanf
atof
float
私はMinGWまたはVisualC++を使用しているため、これらの呼び出しはMSVC++ランタイムに送られます。"Inf"
問題は、特別な値(またはなど)を解析するために取得できないこと"NaN"
です。OKです(など、にInf
収まらない値を解析した後に返されます)。float
"1e999"