タグ付けされた質問 「visual-c++」

Microsoft Visual C ++は、Windows用のC、C ++、およびC ++ / CLIコンパイラです。コンパイラの最新バージョンはVisual C ++ 2019です。コンパイラは次の言語をサポートしています。C(Visual Studio 2019の時点で、ISO C ++標準のC90およびC99およびC11のほとんどの部分をサポートしています)。C ++(Visual Studio 2019の時点で、ほとんどのC ++ 11、C ++ 14、C ++ 17機能と一部のC ++ 20機能のサポート)C ++ / CLI(C#などの.NET言語との相互運用性を提供します)。


2
コンピューターでPythonをコンパイルしたVisual Studioのバージョンは何ですか?
私のコンピューターでPythonをコンパイルするために使用されているVisual Studioのバージョンを見つけようとしています それは言う Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on win32 私が理解していないのはこのMSC V.1500指定です。Visual Studio 2005でコンパイルされているという意味ですか?http://python.orgでこの情報を見つけることができません。

7
Visual Studio 2012のC ++ 11機能
Visual Studio 2012のプレビューバージョン(VS2010以降の次のバージョン)が利用可能になりました。 それがサポートする新しいC ++ 11機能を誰かが知っていますか?(私は現時点でそれを試すことができません)。

7
「uint32_t」識別子が見つかりませんエラー
Linux CからVisual C ++ for Windowsにコードを移植しています。 Visual C ++にはわからない#include <stdint.h>のでコメントにしました。 後で、それらの'uint32_t': identifier not foundエラーの多くを見つけました。どうすれば解決できますか?
94 c++  c  visual-c++ 


3
ラムダの明示的な戻り型
このコード(VS2010)をコンパイルすると、次のエラーが発生します。 error C3499: a lambda that has been specified to have a void return type cannot return a value void DataFile::removeComments() { string::const_iterator start, end; boost::regex expression("^\\s?#"); boost::match_results<std::string::const_iterator> what; boost::match_flag_type flags = boost::match_default; // Look for lines that either start with a hash (#) // or have nothing but white-space …

4
インポートライブラリはどのように機能しますか?詳細?
これはオタクにとってはかなり基本的なことのように思えるかもしれません。しかし、私はそれを明確にしたい。 Win32 DLLを使用する場合、通常はLoadLibrary()やGetProcAdderss()などのAPIを呼び出すだけです。しかし最近、DirectX9で開発しているので、d3d9.lib、d3dx9.libなどのファイルを追加する必要があります。 LIBは静的リンク用で、DLLは動的リンク用であると十分に聞いています。 したがって、私の現在の理解では、LIBにはメソッドの実装が含まれており、最終的なEXEファイルの一部としてリンク時に静的にリンクされます。DLLは実行時に動的にロードされ、最終的なEXEファイルの一部ではありません。 しかし、時には、いくつかのLIBファイルそこにいると来そう、DLLファイル: これらのLIBファイルは何のためのものですか? 彼らはどのように彼らが意図されていることを達成しますか? これらのLIBファイルの内部を検査できるツールはありますか? アップデート1 ウィキペディアをチェックした後、これらのLIBファイルはインポートライブラリと呼ばれていることを思い出します。しかし、メインアプリケーションと動的にロードされるDLLでどのように機能するのか疑問に思っています。 アップデート2 RBerteigが言ったように、DLLで生まれたLIBファイルにはいくつかのスタブコードがあります。したがって、呼び出しシーケンスは次のようになります。 私のメインアプリケーション-> LIBのスタブ->実際のターゲットDLL では、これらのLIBにはどのような情報を含める必要がありますか?私は次のことを考えることができます: LIBファイルには、対応するDLLのフルパスが含まれている必要があります。したがって、DLLはランタイムによってロードされる可能性があります。 各DLLエクスポートメソッドのエントリポイントの相対アドレス(またはファイルオフセット?)は、スタブでエンコードする必要があります。したがって、正しいジャンプ/メソッド呼び出しを行うことができます。 私はこれで正しいですか?他に何かありますか? ところで:インポートライブラリを検査できるツールはありますか?私がそれを見ることができれば、これ以上の疑いはありません。
90 c++  c  windows  visual-c++ 

5
SAFESEHイメージC ++に対してモジュールは安全ではありません
Microsoft Visual Studio 2011 ProfessionalBetaを使用しています cMakeとVisualStudioComplierを使用してコンパイルしたOpenCVC ++ファイル(http://opencv.willowgarage.com/wiki/Welcome)を実行しようとしています。 ただし、プロジェクトをデバッグしようとすると、600以上のエラーが発生します。そのほとんどは次のとおりです。 エラーLNK2026:モジュールはSAFESEHイメージに対して安全ではありません。 どうやらこれらのファイルはopencv_ffmpegプロジェクトにありますが、見つかりませんでした。Microsoftヘルプページのsafeseh Safe Exception Handlersページを確認しましたが、明確な回答は見つかりませんでした。 他の誰かがこの問題を抱えていて、彼らがなんとかそれを修正したかどうか疑問に思いました。

5
「int * ptr = int()」値の初期化はどのように違法ではありませんか?
次のコード(ここから取得): int* ptr = int(); Visual C ++でコンパイルし、ポインタを値初期化します。 そんなことがあるものか?I平均int()利回り型のオブジェクトintと私は割り当てることができませんintポインタに。 上記のコードはどのように違法ではありませんか?

3
Win32のunsignedintへのダブルキャストは2,147,483,648に切り捨てられます
次のコードをコンパイルします。 double getDouble() { double value = 2147483649.0; return value; } int main() { printf("INT_MAX: %u\n", INT_MAX); printf("UINT_MAX: %u\n", UINT_MAX); printf("Double value: %f\n", getDouble()); printf("Direct cast value: %u\n", (unsigned int) getDouble()); double d = getDouble(); printf("Indirect cast value: %u\n", (unsigned int) d); return 0; } 出力(MSVC x86): INT_MAX: 2147483647 UINT_MAX: …

22
パスからファイル名を取得する
パスからファイル名を取得する最も簡単な方法は何ですか? string filename = "C:\\MyDirectory\\MyFile.bat" この例では、「MyFile」を取得する必要があります。拡張子なし。
85 c++  visual-c++ 

7
CからC ++関数を呼び出す方法は?
私はこれを知っている。 C ++からC関数を呼び出す: アプリケーションがC ++であり、Cで記述されたライブラリから関数を呼び出さなければならなかった場合、 //main.cpp extern "C" void C_library_function(int x, int y);//prototype C_library_function(2,4);// directly using it. これは名前C_library_functionを壊さず、リンカーは入力* .libファイルで同じ名前を見つけ、問題は解決されます。 CからC ++関数を呼び出す??? しかし、ここではCで書かれた大きなアプリケーションを拡張しているので、C ++で書かれたライブラリを使用する必要があります。ここでは、C ++の名前マングリングが問題を引き起こしています。リンカーは、未解決のシンボルについて不平を言っています。CプロジェクトでC ++コンパイラを使用することはできません。これは、他の多くのものを壊してしまうためです。抜け道は何ですか? ちなみに私はMSVCを使用しています
84 c++  c  visual-c++  extern-c 

11
Visual Studio 2010がPDBファイルを検索/開くことができないのはなぜですか?
私はVS2010でOpenCVを使用しようとしています。私はアマチュアであり、OpenCVwikiから最初のステップを学んでいます。ただし、プロジェクトをデバッグしようとすると、次のエラーが発生します。 「C:\ Windows \ SysWOW64 \ ntdll.dll」、PDBファイル「C:\ Windows \ SysWOW64 \ kernel32.dll」が見つからないか開くことができません。「C:\ Windows \ SysWOW64 \ kernellbase」が見つかりません。 dll '、PDBファイルが見つからないか開くことができません 私はそれらのファイルを正しいディレクトリに持っているのに、なぜそれらを開くことができないのですか?問題を解決するにはどうすればよいですか?


8
Visual Studio2010の奇妙な「警告LNK4042」
Visual Studio 2010(C ++)からの重要な警告に、頭を殴られたばかりです(ほとんどありません)。 コンパイルにより、次の出力が得られました。 1 Debug \ is.obj:警告LNK4042:オブジェクトが複数回指定されました。エクストラは無視され ます1Debug \ make.obj:警告LNK4042:オブジェクトが複数回指定されました。エクストラは無視され ます1Debug \ view.obj:警告LNK4042:オブジェクトが複数回指定されました。エクストラは無視され ます1identity.obj :エラーLNK2019 :void __cdecl test::identity::view(void)関数void __cdecl test::identity::identity(void)(?identity @ 0test @@ YAXXZ)で参照される未解決の外部シンボル(?view @ identity @ test @@ YAXXZ)1 identity.obj:エラーLNK2019 :未解決の外部シンボルvoid __cdecl test::identity::make(void)(?make @ identity @ test @@ YAXXZ)関数void __cdecl test::identity::identity(void)(?identity @ 0test @@ YAXXZ)で参照 1 range.obj:エラーLNK2019:void …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.