問題タブ [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.
visual-studio-2010 - Dependency Walker エラー: "ABC.DLL" の Side-by-Side 構成情報にエラーが含まれています
サード パーティの DLL "ABC.DLL" を使用する Visual Studio 2010 で作成したプログラムを実行しています。Windows 7 64 ビットを使用しています。
ただし、1 つの DLL が原因で実行に失敗します。この DLL で Dependency walker を実行すると、次のエラーが発生します。
エラー: "...\ABC.DLL" の Side-by-Side 構成情報にエラーが含まれています。サイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーション イベント ログを参照するか、コマンド ライン sxstrace.exe ツールを使用してください (14001)。
依存関係 MSCVR80.DLL および MSVCP80.DLL がありません。
この次のトピックの解決策をすべて試しましたが、それでも同じエラーが発生します。
ABC.DLL は、Visual Studio 2005 でビルドされたサード パーティのライブラリであり、再ビルドする方法がありません。
Visual Studio C++ 2005 Redistributable をインストールし、別のコンピューターから取得した DLL をコピーしようとしましたが (私のコンピューターには存在しないため)、何も機能しません。
visual-c++ - msvr71.dll (Microsoft Visual C++ ランタイム DLL) を配布するにはどうすればよいですか?
msvcr71.dll を必要とするアプリケーションがあります。一部のマシンでは、DLL がありません。ユーザーに VC++ ランタイムのインストールを依頼する代わりに、アプリケーションと共に DLL (ファイル msvcr71.dll のみ) を配布したいと考えています。これは、アプリケーションのインストール ディレクトリにコピーされます。
ライセンスの観点から、私はそれを正しく行っていますか? ライセンス契約が見つかりませんでした。
このページには次の注意事項があります。
Msvcr70.dll または Msvcr71.dll の場合、CRT DLL をアプリケーション プログラム ファイル ディレクトリにインストールする必要があります。これらのファイルを Windows システム ディレクトリにインストールしないでください。Msvcr80.dll および Msvcr90.dll の場合、CRT を Windows サイド バイ サイド アセンブリとしてインストールする必要があります。
msvcrt - MicrosoftとGNUC/C++標準ライブラリの実装
学習ガイドとして推奨できるように、実装の観点からどちらが優れていてクリーンですか?私の見方では、Cライブラリ(C ++のものは醜いものになります)の実装を調べて、それらをいじるだけで、実際に多くのことを学ぶことができます。なぜなら、それらは設計と概念がかなり単純だからです。両方の実装を検討した人々からの偏りのない回答を期待しています。
知らなかった人のために、C /C++ライブラリのMicrosoftの実装のほとんどはデバッグ目的で利用できます。これらは、VisualStudioのインストールフォルダーの下にありVC\crt\src\
ます。例えば。VS2008の場合:(c:\Program Files\Microsoft Visual Studio 9.0\VC\crt\src
にコピーをインストールしたと仮定しますc:\Program Files\
)。
windows - プロセスの起動中に追加のワーカー スレッドが作成されるのはなぜですか?
私は単純な Windows コンソール アプリケーションを実行しています:- コントロールがメインに来ると、スタックをダンプしました--
_ メインスレッドのスタック:
__
起動時にこれが表示されるのはなぜですか??:
スタック:
visual-c++ - 特定の依存関係やサイズの肥大化なしで Win32 アプリケーションをコンパイルする
Visual C++ 2008 を使用して小さな Win32 アプリケーションを構築しようとしていますが、追加のライブラリを出荷したり、それらを静的にリンクしてサイズを肥大化させたりすることなく、最新の Windows マシンで実行したいと考えています。
このトピックに関するインターネット上の多くの記事を読みました: http://kobyk.wordpress.com/2007/07/2...visual-c-2005/
Visual Studio の新しいバージョンごとに変更される msvcr90 のような新しいランタイムとは対照的に、システム dll である最新の Windows にある msvcrt.dll に私のプロジェクトを動的にリンクすることをお勧めします。
そのため、リンカー オプションでは、すべての既定のライブラリ (/NODEFAULTLIB) を無視しました。追加の依存関係に msvcrt.lib を追加しました。
しかし、コンパイル時に次のような「未解決の外部シンボル」エラーが大量に発生します。
また、Minicrt、WCRT などのサイズの肥大化を抑えるように設計された代替の C++ ランタイム ライブラリを使用しようとしましたが、いずれにしても「未解決の外部シンボル」エラーが発生します。
どんな助けでも大歓迎です、
前もって感謝します
python - WindowsボックスOOTBでのcx_Freeze(Python 2.7)の使用
Pythonを使い始めて以来、この問題に悩まされてきました。Pythonスクリプトを作成し、それを任意のWindows XP(およびそれ以降)のマシンで実行できるEXEとしてエクスポートしたいと思います。
cx_Freezeはこれらすべてを完全にカバーしますが、唯一の問題は、結果のEXEを実行する前にクライアントコンピューターにVisualC++ランタイムをインストールする必要があることです...
私の美しい*.pyファイルをWindowsXP以降の新規インストールで実行される配布可能なEXEに変換することは可能ですか?
c++ - 問題が見つかりました: Visual Studio CRT ライブラリ: FLS_GETVALUE
今日、Visual Studio 2008 と 2010 の CRT ライブラリのソース コードを調べていたら、mtdll.h ファイルにバグが見つかりました。問題はマクロ FLS_GETVALUE にあります。x86 システムでは、このマクロは、変数 gpFlsGetValue に割り当てられた関数を呼び出す代わりに、TlsGetValue を直接呼び出します。
まず第一に、FlsAlloc、FlsGetValue、FlsFree、および FlsSetValue がすべてのシステム (Windows Vista 以降および Windows Server 2003 以降) で使用できるわけではないため、これは問題です。これらの関数は、TlsAlloc、TlsGetValue、TlsFree、および TlsSetValue のように動作しますが、ファイバー (一種のユーザー スレッド) をサポートします。Tls 関数の代わりに Fls* 関数を使用する必要があるため、VS の C ランタイム ライブラリは、プロセスまたは dll がロードされたときに Fls 関数が使用可能かどうかをチェックし、gpFls* 変数を初期化します。Fls* が利用できない場合、CRT はこれらの変数を同等の Tls* 関数で初期化します。
ランタイム ライブラリによって内部的に使用されるため、マクロ FLS_GETVALUE をコード内で直接使用することはできません。ランタイムは、このマクロを使用して、ランタイム ライブラリのスレッド データごとに初期化します。
私の質問は、このバグの影響についてです。ファイバーが広く使用されていないことは承知していますが、ファイバーを使用するアプリケーション内で使用される DLL を開発すると、どのような影響がありますか? このバグはアプリケーションのクラッシュを引き起こす可能性がありますか、それとも誤った結果しか生成しませんか? この問題は、SQL Server のような広く使用されているアプリケーションで問題を引き起こす可能性がありますか? どう思いますか?このバグはセキュリティ上のリスクになる可能性がありますか? IIS または ASP.Net は、クラッシュの原因となるファイバーを使用していますか?
好奇心旺盛な人のために、mtdll.h の問題のある行の現在のソースを以下に示します。
#define FLS_GETVALUE ((PFLS_GETVALUE_FUNCTION)TlsGetValue(__getvalueindex))
以下は、マクロ FLS_GETVALUE の修正版です。
#define FLS_GETVALUE (((PFLS_GETVALUE_FUNCTION)DecodePointer(gpFlsGetValue))(__getvalueindex))
今のところ、Microsoft にバグを送信する方法を見つける必要があります。
dll - DLL (VS2005 SP1) で最小 (5592) の代わりに CRT (/MD) のバージョン 4053 を使用する
これで私を助けてくれることを願っています。
Visual Studion 2005 SP1 の最新バージョン (5592) ではなく、バージョン 4053 の CRT (/MD) を使用して dll (サードパーティ以外のライブラリを静的にリンク) をビルドしたいと考えています。
これを達成するには、次の方法を使用するだけで十分かどうか疑問に思っています。私の理解では、ソリューションのすべての依存プロジェクトでこのメソッドを使用すると、dll の埋め込みマニフェストが変更され、要求された CRT (および MFC、ATL) のバージョンが示されます。この仮定は正しいですか?
dll の埋め込みマニフェストに必要なバージョンが十分に記載されていることを確認するだけですか? dll をビルドするとき (特定のライブラリを無視して)、古い (4053) CRT dll (msvcr80.dll) に属する正しいインポート ライブラリ (msvcrt.lib) を使用するべきではありませんか? このようなマイナー バージョンの変更で、このインポート ライブラリ (msvcrt.lib) はどのように変更されますか?
前もって感謝します!
マーク・モーセン
msvcrt - Vista (SP2) 64 ビットの場合: C/C++ ランタイム (CRT) アセンブリ キャッシュがアプリに表示されないのはなぜですか?
VC++ および Windows のエキスパートの皆様、こんにちは。;)
まず、私のバックグラウンド: Vstudio、C & C++、Windows。あらゆる種類の可能性、フォーラム、修正、さらには O/S プラットフォームの変更を 5 日間試した後、ここに投稿する (またはウィンドウから飛び出す!) ことにしました。私の実際の開発作業を保持 !! . :)
Soo.. シナリオ: 問題が発生している開発マシン: OS: SP2 を適用した Windows Vista 64 ビット (ただし、VMWare を使用して実行している 32 ビット XP SP2 仮想マシンで同じ問題が発生しています。開発 IDE: SP1 を適用した Visual Studio 2008出力 Binary type: .DLL (開発用のプラグインになる運命です。IDE は RealStudio と呼ばれます)
問題/問題: VStudio 2008 を使用して 32 ビット C++ DLL を開発しています。これには、ASDCP (オーディオ/ビデオ コーデック処理に使用される) と呼ばれる中規模から大規模な C++ ライブラリが含まれます。 Win32、Linux、MacOS などでビルドするためのビルトイン サポート。
現在、ASDCP ライブラリは C++ 標準ライブラリ (MSVCP90.dll および .lib ファイルに格納されています) を利用しています。そのため、独自のプラグイン (DLL) を作成し、ASCP ライブラリを使用せずに呼び出し元アプリ (RealStudio、別の開発 IDE と呼ばれる) を許可すると (したがって、C++ 標準ライブラリがリンクされる必要はありません)、正常に動作します。 . しかし、ASDCP ライブラリからコードを追加し、C++ ランタイム ライブラリの STATIC Link(/MT) を選択してから、プラグインをロードして RealStudio を実行すると、メモリ リークが発生し、おそらく「アクセス違反」が発生します。おそらく、さまざまな DLL 間の不一致が原因です。
さて、この投稿に対する私の質問は、VStudio 2008 で CRT を動的にリンクしてから、RealStudio を実行してプラグインを読み込もうとすると、Microsoft.CRT の Side-by-Size ASSEMBLY CACHE を見つけることができないということです。 .VC90!! すべてのマニフェスト ファイルを操作し、マニフェスト ファイルを DLL に埋め込み、WinSxs アセンブリ キャッシュ内の CRT のバージョンを (約 10 回!) チェックし、マニフェスト ファイル/依存関係のニーズに対応しました。
しかしどういうわけか... RealStudio (RunAs Admiistrator) が CRT 9 DLL (特に MSVCP90.dll) をロードできません。私は MSDN や他のフォーラムで約 15 時間を費やして、同様の問題や解決策を検討し、Microsoft のフォーラム モデレーターが推奨する解決策を実装しました。しかし、役に立たない。
では、関連する CRT 依存関係の Assembl キャッシュを「参照」してロードするために、64-Windows (Vista SP2) で実行される 32 ビット C++ DLL をどのように取得しますか??????
ヘルプ!?!?!お願いします..
私が再び正気になるのを助けてくれて、前もって深く感謝します!
ディネシュ