問題タブ [visual-c++-2015]
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.
windows - _USING_V110_SDK71_ は VC++ 2015、v140_xp、リリースのデフォルトから継承されていませんか?
概要:リリース バージョンのコンパイル時に宣言されていない識別子SetDefaultDllDirectories
fromatlcore.h
が報告されますが、デバッグのコンパイル時には問題ありません。さらに調査すると、_USING_V110_SDK71_
がその役割を果たしていることがわかります。これはプロジェクトの既定値から継承する必要があります (下の図を参照)。
詳細: C++ ネイティブの ATL アプリケーションを Visual C++ 2005 から Visual C++ 2015 に移行しています。目標は、Windows XP の実行バージョンをできるだけ長く維持することです。そのため、v140_xp プラットフォーム ツールセットがプロジェクトに設定されました。Debug バージョンでは問題なく動作します。ただし、Release MinDepency バージョンのコンパイル エラーが発生します。v140 (_xp なし) を使用すると、正常にコンパイルされます。
これは、移行する必要があるアプリケーションのブランチです。他のブランチ (以前) を VC++ 2008、2010、2012、および 2013 に正常に移行しました。
他の場所でも言及されているエラーを見てきました。ただし、理由は異なる場合があります。完全なエラー行は次のとおりです。
問題のある行は、次の場合に使用されます。
したがって、明らかにそのシンボルは定義されていませんでした。Visual Studio 2015 Professional、バージョン 14.0.23107.0 D14REL、および Windows 8.1 を使用しています。
プロジェクト設定を確認するときは、_USING_V110_SDK71_
プロジェクトのデフォルトから継承されたシンボルを定義する必要があります。
更新:エラー メッセージと [出力] ウィンドウの周りの行:
あなたはそれについていくつかの光を当てることができますか?ありがとう
windows - C++11 std::cout << "UTF-8 の文字列リテラル" を Windows コマンド コンソールに送信しますか? (ビジュアルスタジオ 2015)
概要: UTF-8 エンコーディング (Windows CP 65001) で格納されたソース コードで定義された文字列リテラルをストリームcmd
を使用してコンソールに正しく出力するにはどうすればよいですか?std::cout
動機:優れたCatch 単体テスト フレームワークを (実験として) 変更して、テキストにアクセント付きの文字が表示されるようにしたいと考えています。変更は単純で信頼できるものである必要があり、作成者が機能強化として受け入れることができるように、他の言語や作業環境にも役立つ必要があります。または、Catch をご存知で、別の解決策があれば投稿していただけますか?
詳細:チェコ語版の「クイック ブラウン フォックス...」から始めましょう。
以下を出力します (Lucida Console に設定されたフォント):
デフォルトのcmd
エンコーディングは 852、デフォルトの Windows エンコーディングは 1250 で、ソース コードは 65001 エンコーディング (BOM 付き UTF-8) を使用して保存されています。は、 と同じ方法で (プログラムによって) エンコーディングをSetConsoleOutputCP(1250);
変更します。cmd
chcp 1250
観察: 1250 エンコーディングを設定すると、UTF-8 文字列リテラルが正しく出力されます。説明できると思いますが、本当に不思議です。問題を解決するための適切で人間的で一般的な方法はありますか?
更新:私の"narrow string literal"
場合、Windows-1250 エンコーディングを使用して保存されます (中央ヨーロッパのネイティブ Windows エンコーディング)。ソースコードのエンコーディングには依存していないようです。コンパイラは、それをWindows のネイティブ エンコーディングで保存します。そのため、そのエンコーディングに切り替えるcmd
と、目的の出力が得られます。醜いですが、プログラムでネイティブの Windows エンコーディングを取得するにはどうすればよいですか(に渡すためSetConsoleOutputCP(cpX)
)。必要なのは、コンパイルが行われたマシンで有効な定数です。実行可能ファイルが実行されるマシンのネイティブ エンコーディングであってはなりません。
C++11 も導入されましu8"the UTF-8 string literal"
たが、適合しないようです。SetConsoleOutputCP(CP_UTF8);
c++ - 可変個引数テンプレートでのペアの使用
さて、可変個引数テンプレートを使用して n 次元で範囲ツリーを実装しようとしています。基本的なセットアップは機能していますが、オプションで比較関数オブジェクトをテンプレート リストに渡して、std::less 以外でツリーをソートできるようにしたいと考えています。
私が最初に考えたのは、型と比較関数を含むペアを最初の要素として含むバージョンで、テンプレート リストをオーバーロードできるということです。しかし、テンプレート宣言行をコンパイルすることがわかりません。Visual C++ (2015) は C2079: "std::pair::first uses undefined class 'T'" で始まります。
とにかく、コードに進みます。ここに私がやろうとしていることを示す小さなスニペットがあります:
これはすべて正常に機能します。しかし、別のバージョンの rangetree を最初のテンプレート メンバーとして追加すると、次のような問題が発生します。
これは、コンパイラが満足する方法でフォーマットされているように見える部分です。less 以外のものを使用する必要がある場合は、必要に応じてテンプレート メンバーと比較関数を組み合わせるという考え方です。
c++ - Visual C++ 14 - Visual C++ 12 でビルドする単純なスレッド プログラムをビルドできない
私はこのMCVEを持っています
これは VS 2013 Update 3 およびColiruでビルドされますが、VS 2015 ではビルドされず、次のエラー リストが表示されます。
がなければstd::ref
、このコードはコンパイルされます。問題に見えるのは?
windows - MDI クライアントのサイズと位置を設定するには?
を使用すると、サイズ(x
、y
)と位置(nWidth
、 )の両方のnHeight
引数が無視されるようCreateWindow
です。例えば:
以下に示すように、常に左上隅に配置され、親のサイズになります。
(ウィンドウの背景が であるため、違いがわかりますCOLOR_WINDOW
)。
c++ - std::array 別の標準コンテナの要素型として?
それに対するルールはないようで、エラーが発生します
はC2036 'std::array<int,0x08> *': unknown size
これは意味がありません。内部のコード<vector>
は内部ポインターを進めておりend
、これは他の場所でも使用されます (拡張の計算されたサイズと同様)。a のサイズstruct{int x[8];}
は確かに「既知」です。
何が起きてる?
うーん、それは単純なタイプミスなどではなく、他の人が試してみると問題なく動作するように見えるため (そして、他の誰かが書いたサンプルは私にとってはうまくいきました!) 問題のあるステートメント以外が何も残らないようになるまで、ソースファイルを切り詰めました。失敗します。これがファイル全体です。プリコンパイル済みヘッダーはオフになっています。
x64、リリースビルドを使用してビルドしています。
理解した:
#include の欠落でvector
はなく、array
! 他のヘッダーで前方宣言されているようですが、不完全です。
c++ - Windows で libssh2 と libopenssl を使用する libgit2
私は以前に試してみましたが、完全なビルドではほとんど成功しませんでしたが、それでも失敗し、Windowsで明らかに何かが欠けています(そして、おそらくWindows:P)
誰かが私を案内してくれますか
- libssh2 でコンパイルする正しい OpenSSL を見つける
- 実際にlibssh2をlibgit2にcmake/コンパイルすると、libssh2が見つからないと言い続け、再度ビルドするのに苦労しています。
Windows用のCMake guiを使用して、VC2015プロジェクトをビルドしようとしています
libgit2 のビルド時に発生していたエラーは
考えられるあらゆる場所に配置しましたが、見えると思いますが、設定してみましたCMAKE_PREFIX_PATH
か?
誰かがWindowsでそれを成功させた場合、私が間違っていること、またはすべきことについて1つか2つのポインタをいただければ幸いです
親切にありがとうロバート