問題タブ [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.
winapi - msvcrtd.dllはどこにありますか?
Windows Driver Kitに対応するmsvcrtd.dll
(デバッグCRT)はどこにありますか?\WinDDK\7600.16385.1\lib\Crt\i386\msvcrtd.lib
c++ - _CRT_SECURE_NO_WARNINGS を定義すると、ベクター デストラクタでクラッシュする
Visual C++ 6.0 から VC++ 9.0 (2008) に移植されたレガシー コードを使用しています。_CRT_SECURE_NO_WARNINGS
プリプロセッサ定義を使用してセキュア CRT 警告を無効にしました。std::vector
しかし、それはデストラクタでのクラッシュにつながりました。
使用上の問題はあり_CRT_SECURE_NO_WARNINGS
ますか?
c++ - msvcr80.dll をロードして free() 関数を公開する DLL を作成する
MSVCR80 に依存し、クリーンアップが必要なリソースを割り当てるサードパーティの DLL があります。ライブラリは、これを行うための関数を公開していませんfree
。代わりに、同じランタイム ライブラリを読み込んで、free
関数を手動で呼び出す必要があります。
回避策として、正しいランタイムをロードして関数を公開する「ラッパー」DLL を作成しようとしていfree
ます。この DLL は Visual Studio 2010 を使用して作成され、別のランタイム ライブラリに依存しています。マニフェストの問題が原因であると思われるエラーR6034LoadLibrary("msvcr80.dll")
で失敗します。
を使用して msvcr80.dll をロードすることさえ可能LoadLibrary
ですか? マニフェストを作成して DLL に埋め込み、msvcr80.dll をラッパー DLL と同じディレクトリに保存する必要がありますか?
これがサードパーティのライブラリの欠陥であることは認識していますが、このバージョンにかなりこだわっています。ベンダーにこれを修正してもらうことは、おそらくオプションではありません。
visual-studio - msvcr100およびmsvcrt
古いVC6(msvcrt.dll )でコンパイルされたDLLは、 msvcr100.dllに対してリンクされているDLL(またはプログラム)でも実行可能で「呼び出し可能」であることに気付きました。
非常に便利ですが、プロセスに両方のランタイムを同時に含めるのは良い考えだと思いますか?
c++ - 特定のCランタイムがすでにインストールされているかどうかを示すレジストリエントリはありますか?
私はオンラインと自分のレジストリを調べていましたが、そうではないと思いますが、ここで決定的な答えを得ることができれば素晴らしいと思います。
クライアント側での再利用の場合と同様に、実行時のみ。
VC10、 http: //blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspxでも可能だと思いますが、その前にMsiQueryProductStateAPIを呼び出す必要があります。おそらく、すべてのクライアントにすでにMSVCR100.DLLを提供しているだけですか?
c++ - エンド ユーザーが Debug CRT にリンクする必要がある場合、SDK を配布する最良の方法は何ですか?
私はカメラ会社で働いており、顧客に SDK を提供しています。これまで、非デバッグ CRT に対してビルドされた SDK のリリース ビルドのみを提供していました。SDK パッケージの一部として、SDK の使用方法に関する多数の例を提供しています。サンプルには、デバッグ CRT を使用するデバッグ プロジェクト構成があります。場合によっては、これらの例とそれらがリンクするライブラリが異なる CRT を使用しているために、奇妙な動作に遭遇することがあります。
私の質問は、この種の状況に対処する適切な方法は何ですか? デバッグ CRT を使用するライブラリのデバッグ バージョンを配布する必要がありますか? pdb を提供しない限り、またはせいぜいストリップされた pdb を提供しない限り、すべての専有情報は隠されたままであるはずです。これを行う際に、最適化されていないより大きなバイナリ以外の悪影響はないと仮定するのは正しいですか?
デバッグ CRT にリンクされたデバッグ バイナリを配布するのは一般的な方法ですか、それともリリース ビルドのみを配布し続ける必要がありますか?
c - MSVCRT:sin、cos et alの実装(ソースコード)はどこにありますか?
基本的な三角関数の実装は、Visual C++CRTのどこにあるのでしょうか。
「sin」のファイルを検索するとC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt
、の定義が表示されますが、それ以上は表示されません(一部のdefファイルmath.h
のセクションでの言及を除く)。EXPORTS
私の知る限りでsin
は、コンパイラがそれ自体をマシンコードに変換するキーワードではありません。したがって、たとえその実装がいくつかの単純なアセンブリコードに要約されたとしても、どこかに実装がなければなりません。
ここで何が欠けていますか?どこにあるの?
編集:明らかに、私は十分に明確ではありませんでした:コンパイルされたlibまたはdllではなく、ソースコードを探しています
c++ - std::vectorコンストラクターの動作
次のコードを取ります。
このコードはlibstdc++ではコンパイルされません。ただし、VisualStudioのC++ライブラリでコンパイルされます。私が期待する動作はv
、サイズ10の10個のベクトルで満たされていることです。これは、VisualStudioで得られるものです。
Visual Studioで呼び出されるコンストラクターは、2つのイテレーターを使用するコンストラクターです。コンストラクター自体は次のように定義されます。
テンプレート関数には2つのバージョンがあります_Construct
。どちらも同じシグニチャを持っていますが、一方は範囲からベクトルを初期化し、もう一方は2番目のパラメータから構築された値型copyのN個のコピーでベクトルを初期化します。この場合、テンプレートパラメータはの2番目のバージョンでのみ有効です_Construct
。
結果はv
、値10からコピー構築されたベクトルの10個のコピーで満たされます。libstdc++を使用して同じ効果を得るには、次のように構築することで同じコードパスが使用されます。
ここで正しい実装はどれですか?これはlibstdc++のバグですか、それともVisualStudioのC++ライブラリの拡張ですか?
編集:明確にするために、範囲コンストラクターを呼び出す必要があるかどうかは尋ねていません。私は、それを達成するためにどのパスをとるかに関係なく、どのC++実装が正しい動作をするかを尋ねています。
python - 64 ビット Python ctypes での msvcrt の使用
ctypes パッケージを使用して、64 ビット Python から msvcrt 関数を呼び出したいと考えています。私は明らかにそれを間違っています。それを行う正しい方法は明らかですか?
このコードが意図したとおりに機能した場合、クラッシュすることなくテキスト ファイルを開いたり閉じたりできます。
c - MingwのmainCRTStartupの前にCが機能しますか?
Visual C ++では、正常にコンパイルされ、関数「stuff()」がmainの前に呼び出されます。「mainCRTStartup()」の前に「stuff()」をどのように呼び出しますか?Mingw(OS:Windows NT)で?「voidstart()」を無視しているようです。