問題タブ [visual-c++-runtime]
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-c++ - Visual Studio Express を使用してアプリ ビルドから msvcrtxx.dll を再配布できますか?
Visual C++ 2008 Express Edition をダウンロードすると、次のファイルが存在します。
ファイル redist.txt には、次のように書かれています
次のリストは、Visual Studio 2008 ライセンスの下で再配布するために Microsoft Visual Studio 2008 で使用できるファイルのリストです。ライセンスを取得した Microsoft ソフトウェアが Visual Studio 2008 でない場合、Microsoft ソフトウェアによってインストールされたファイルのみが、そのライセンスの下で再配布できます。
上記の msvcr90.dll が含まれます
私の質問は、このライセンスで msvcr90.dll を Express から配布できるかどうかです。「Microsoft ソフトウェアによってインストールされたファイルのみ」とはどういう意味ですか? 何か助けはありますか?(具体的には、mingw/gcc によってビルドされたアプリで msvcr90.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 サイド バイ サイド アセンブリとしてインストールする必要があります。
c++ - Visual Studio 2012 を使用し、古いプラットフォーム ツールセットでコンパイルしますか?
問題
Visual Studio 2012 を使用して C++ DLL を開発しています。一部のマシンでは、「v110」に設定されているプラットフォーム ツールセットが見つからないため、これらの DLL をロードできません。
古い C++ ランタイムをインストールしようとしました。「新しいバージョンが既にインストールされている」ため、インストールされませんでした。現在の Windows SDK もインストールしましたが、v110 以外に選択できる項目はまだありません。
質問
C++ DLL を古いバージョンの C++ ランタイムでコンパイルして、開発者以外のマシンで実行するにはどうすればよいですか?
.net - SqlCompact の 4.0 アプリケーションで Visual C++ 2005 ライブラリ DLL をホストする
自分のローカル DB (SqlCompact3.5) に接続する MS VS2010 で開発された WPF アプリケーションがあり、Sql コンパクト Dll はソリューションで内部的に非常に管理されています。フレームワーク 4.0 のみの XP 32 ビット マシンでアプリケーションがクラッシュし始めると、問題が発生します。インストールされ、Windows イベント ビューアーに記録された例外をグーグルで調べた後、Microsoft Visual C++ 2005 再頒布可能 SP1 パッケージをインストールするソリューションを発見し、それは素晴らしい動作をします..
しかし、すべての顧客がマシンに余分なパッケージをインストールすることを強制することを避けるために、これらの DLL をアプリケーションの内部に含める必要があります..どうすればそれを行うことができますか!?
c++ - Visual C++ DLL プロジェクトで競合するランタイム ライブラリ
Visual C++ 2012 を使用して x64 C++ DLL をビルドしようとしました。これは、他の 1 つの静的サードパーティ .lib ファイルをリンクする単純な DLL です。次の警告メッセージが表示されます。
警告 LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合します。/NODEFAULTLIB:ライブラリを使用
私のDLL(および私のDLLをインポートする他のすべてのプロジェクト)が/ MD(マルチスレッドDLLランタイム)を使用している間、他のライブラリは/ MT(マルチスレッド静的ランタイム)リンカーオプションを使用しているようです。サードパーティのライブラリがそのまま提供され、DLL を変更すると、DLL を使用するすべてのプロジェクトで同じ問題が発生するため、これを調和させることはできません。
この問題について、MS とフォーラムからいくつかのページを読みました。しかし、これらのページのどれも、ここでの問題を正確に説明していません。
私が理解していないこと:
異なるランタイム バリアントを使用するコードをリンクすることの害は何ですか (メモリの浪費以外)? これは無視できると言う人もいれば、無視できないかもしれないと言う人もいます。
/NODEFAULTLIB[:library] を使用してもよろしいですか? ドキュメントには、「外部参照を解決するときに検索するライブラリのリストから、指定されたライブラリまたはライブラリを削除する」と記載されています。どのライブラリを「:library」として追加する必要があり、これによりどのように問題が解決されますか?
c++ - Microsoft Visual C++ Redistributable for Visual Studio 2012 Update 4 インストーラーが中国語で表示される
Visual Studio 2012 Update 4 用の Microsoft Visual C++ Redistributableをインストールする必要がありますが、実行すると、英語を選択したにもかかわらず、中国語で開きます。私は3つの異なるブラウザで試しました。Microsoft からダウンロードしたファイルを右クリックすると、詳細に英語と表示されます。
私は Microsoft のサポートに詳しくなく、何かを報告する場所が見つかりませんでした。私はそれをインストールして損傷を与えることを恐れています。助言がありますか?
sqlite - WinRT appxupload パッケージに VCRT を含める方法は?
Microsoft Visual C++ 2013 ランタイムに依存する SQLite を使用する WinRT アプリがあります。送信用にパッケージ化するときに、出力ファイルを調べると、AppxManifest.xml ファイルに依存関係が正しく一覧表示されていることがわかります。
sqlite3.dll
各アーキテクチャのパッケージも見つけることができます。見つけられないように見えるのは、Visual C++ ランタイムです。これはパッケージに入れる必要がありますか?それとも、Windows ストア アプリのインストーラー プロセスは、単に依存関係としてリストした結果として、これを自動的にダウンロードしてインストールしますか?
私がこの問題の真相を突き止めようとしている理由は、ARM マシンでアプリを起動できなかったため、最初に送信したときにアプリが認証に失敗したためです。ただし、すべてのアーキテクチャで問題なく動作します。これにより、依存関係が適切にインストールされていないと思われます。
ご指摘ありがとうございます。
visual-studio - MSVC C++ CRT の _SYSCRT マクロとは何ですか?
VC CRT ソースを参照すると、2 つの別個の実装 (new
演算子など)が表示_SYSCRT
されることがあり_SYSCRT
ます。
現在、_SYSCRT
文書化されていない可能性がありますが、私は CRT コードをデバッグ_SYSCRT
していて、目の前にあります。問題は、「通常の使用」中に定義されているか定義されていないと想定する必要があるかということです。
「通常の使用」とは、MSVC 2015 で Win32 ユーザー モード アプリケーションとリンクすることを意味します。