タグ付けされた質問 「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言語との相互運用性を提供します)。

6
Visual StudioでDLLファイルへのパスを設定するにはどうすればよいですか?
DLLファイルに依存するアプリケーションを開発しました。アプリケーションをデバッグすると、アプリケーションから次のような不満が出ます。 xxx.dllが見つからなかったため、このアプリケーションは起動に失敗しました。 そのため、DLLファイルを.vcprojファイルと同じディレクトリにコピーする必要があります。 DLLファイルを(好ましくは)相対パスまたは(好ましくない)絶対パスで検索するようにプロジェクトを設定する方法はありますか? プロジェクト設定でインクルードとライブラリパスを設定する方法と同様の概念。 つまり、アプリケーションをデバッグする(を押すF5)と、上記のエラーがポップアップします。

8
Visual C ++:特定のリンカー警告を無効にする方法?
私はCGALのライブラリを使用しています。これは、コードコンパイルのリンク段階で、次の形式の多くのリンク警告を生成します。 warning LNK4099: PDB 'vc80.pdb' was not found with 'gmp-vc80-mt-sgd.lib' or at 'vc80.pdb'; linking object as if no debug info Visual C ++ / Studio 2008でこの特定のリンカー警告をオフにするにはどうすればよいですか? 私が使用している外部(CGAL)ライブラリを制御できないことに注意してください。外部ライブラリを再コンパイルすることはできません。したがって、私の側でメッセージを修正する必要があります。

23
Visual StudioでC ++プロジェクトをコンパイルすると、致命的なエラー「LNK1104:ファイル 'C:\ Program.obj'を開けません」が発生するのはなぜですか?
Visual Studio 2008で新しいC ++プロジェクトを作成しました。コードはまだ書かれていません。プロジェクト設定のみが変更されました。 プロジェクトをコンパイルすると、次の致命的なエラーが表示されます。 致命的なエラーLNK1104:ファイル 'C:\ Program.obj'を開けません
117 visual-c++  linker 

9
Visual C ++を使用してコードの背後にあるアセンブリを表示する方法は?
2行のコードの効率に関する別の質問を読んでいて、OPは、コードの背後にあるアセンブリを調べたところ、両方の行のアセンブリが同じであると述べました。余談ですが、プログラムのコンパイル時に作成されたアセンブリコードを表示するにはどうすればよいですか。 MicrosoftのVisual C ++を使用していますが、Visual Basicで記述されたコードの背後にあるアセンブリを表示できるかどうかも知りたいです。 では、C ++やVisual Basicなどの高水準言語で記述されたプログラムの背後にあるアセンブリコードをどのように表示しますか?

10
単一の警告エラーを無効にする
Visual Studioでcppファイルの警告行を1つだけ無効にする方法はありますか? たとえば、例外をキャッチしてそれを処理しないと、エラー4101(参照されないローカル変数)が発生します。その関数だけでこれを無視する方法はありますが、それ以外の場合はコンパイル単位で報告しますか?現時点で#pragma warning (disable : 4101)は、ファイルの先頭に配置していますが、ユニット全体でオフになっていることは明らかです。


3
MFCとATLの基本的な違いは何ですか?
それらを「通常の」GUIプログラム(COMなし、ActiveXなし、派手なものなし)にのみ使用していると仮定すると、ATLとMFCの基本的な違いは何ですか? 私はウェブでいくつかの検索を行いましたが、結局のところ、どの回答も実際には私の質問に答えていません。 http://msdn.microsoft.com/en-us/library/bk8ytxz5(v=vs.80).aspx: 「ATLは、C ++でCOMコンポーネントを作成し、小さなフットプリントを維持するための高速で簡単な方法です。MFCが自動的に提供するすべての組み込み機能が必要ない場合は、ATLを使用してコントロールを作成します。」 次の理由により、私の質問には実際には回答しません。 COMを使用していません。 これはMFC が高速でないことを意味しますか?なぜ、どのように? 「MFCを使用すると、完全なアプリケーション、ActiveXコントロール、およびアクティブドキュメントを作成できます。既にMFCでコントロールを作成している場合は、MFCでの開発を継続することをお勧めします。新しいコントロールを作成するとき、必要がない場合はATLの使用を検討してくださいMFCのすべての組み込み機能。」 また、私の質問には答えません。 そもそも、ActiveX が何なのか、私にもよくわかりません。 マイクロソフトがMFCの使用を推奨していないように見えますが、理由がわかりません。 ATLが提供しないMFCの「組み込み機能」とは正確には何ですか? 一般的に、これは私の疑問に答えません。なぜなら、それは欠点とその背後にある理由を説明しないからです。 直接的または間接的に、すべてが前のページにリンクしているように見えるためです。 新しいC ++プロジェクトでATL、MFC、Win32、CLRのどちらを使用するかをどのように決定しますか? 「ATL&MFCは間を決めてややトリッキーです。 [[いいえ冗談です!]] 私はあなたを参照してくださいしたいMSDNのページそれらの間で決定するために選択するために。」 明らかに、これは私の質問に答えません。:) http://www.codeguru.com/forum/archive/index.php/t-64778.html 等 私が現在観察しているもの(過去2日間、両方を学習しようとしている間): ATLはテンプレート、またはコンパイル時のポリモーフィズムに基づいています。 ATLメソッドは非仮想である傾向があり、参照を返す傾向があります。 MFCは仮想メソッド、または実行時のポリモーフィズムに基づいています。 MFCメソッドは仮想である傾向があり、ポインターを返す傾向があります。 しかし、それらの間にアーキテクチャ上の違いはないようです: どちらもメッセージマップを使用します(BEGIN_MSG_MAP対BEGIN_MESSAGE_MAP...大したこと) どちらもWin32メソッドをクラスにラップします どちらも、同様のクラスの持っているように思わCWnd対をCWindow しかし、コンパイル時と実行時の側面以外に実際の違いがない場合、なぜ両方が存在するのでしょうか。それらの1つで十分ではありませんか? ここで何が欠けていますか?
110 c++  visual-c++  mfc  atl 


5
LPCSTR、LPCTSTR、およびLPTSTR
どう違いますかLPCSTR、LPCTSTRおよびLPTSTR? なぜ我々はに文字列を変換するために、これを実行する必要がありますLV/ _ITEM構造体変数pszText: LV_DISPINFO dispinfo; dispinfo.item.pszText = LPTSTR((LPCTSTR)string);
109 c++  windows  visual-c++  mfc 

4
dllexportを使用してDLLから関数をエクスポートする
C ++ Windows DLLから関数をエクスポートする簡単な例を教えてください。 ヘッダー、.cppファイル、および.defファイル(絶対に必要な場合)を確認したい。 エクスポートされた名前を装飾しないでください。最も標準的な呼び出し規約(__stdcall?)を使用したいと思います。ファイル__declspec(dllexport)を使用する必要はありません.def。 例えば: //header extern "C" { __declspec(dllexport) int __stdcall foo(long bar); } //cpp int __stdcall foo(long bar) { return 0; } 名前にアンダースコアや数値(バイトカウント)が追加されないようにしています。 同じヘッダーをサポートせずdllimport、dllexport使用してもかまいません。C ++クラスメソッドのエクスポートに関する情報は必要ありません。Cスタイルのグローバル関数だけです。 更新 呼び出し規約を含めない(およびを使用するextern "C")と、希望どおりのエクスポート名が得られますが、それはどういう意味ですか?pinvoke(.NET)、declare(vb6)、およびGetProcAddress予想されるデフォルトの呼び出し規約は何ですか?(GetProcAddressこれは、呼び出し元が作成した関数ポインターに依存すると思います)。 このDLLをヘッダーファイルなしで使用したいので#defines、呼び出し元がヘッダーを使用できるようにするために、それほど多くの機能を必要としません。 私は*.defファイルを使用しなければならないという答えで大丈夫です。

12
Visual Studioは新しいC / C ++標準をサポートしていますか?
私はC99とC ++ 11と、いつか使うのが良いかもしれない言語標準に追加されているこれらすべての完全に甘いものについて読み続けています。ただし、現在Visual StudioでC ++を作成することは困難です。 標準の新しいものはビジュアルスタジオに追加されますか、それともMicrosoftは新しいC#バリアントを追加することに関心がありますか? 編集:受け入れられた回答に加えて、Visual C ++チームのブログを見つけました。 http://blogs.msdn.com/vcblog/ そして具体的には、その中のこの投稿: https://web.archive.org/web/20190109064523/https://blogs.msdn.microsoft.com/vcblog/2008/02/22/tr1-slide-decks/ 非常に便利。ありがとう!


2
VS ++アドオンからVC ++コードDOMにアクセスできますか?
Visual Studio IntelliSense for VC ++には、「完全な」EDG C ++パーサーが含まれています(Intelなどでも使用されています)。C#コードDOMはアドオンにアクセスできるので(間違っている場合は修正してください)、C ++コードDOMにもアクセスできますか?これを使用して、VS環境内で開いているVC ++プロジェクトを分析できますか?

10
gettimeofday()はマイクロ秒の精度であることが保証されていますか?
私はもともとWin32 API用に作成されたゲームをLinuxに移植しています(Win32ポートのOS XポートをLinuxに移植しています)。 QueryPerformanceCounterプロセスの起動後、uSeconds を指定して実装しました。 BOOL QueryPerformanceCounter(LARGE_INTEGER* performanceCount) { gettimeofday(&currentTimeVal, NULL); performanceCount->QuadPart = (currentTimeVal.tv_sec - startTimeVal.tv_sec); performanceCount->QuadPart *= (1000 * 1000); performanceCount->QuadPart += (currentTimeVal.tv_usec - startTimeVal.tv_usec); return true; } これはQueryPerformanceFrequency()、周波数として定数1000000 を与えることと相まって、私のマシンでうまく機能しuSeconds、プログラムの起動以降に含まれる64ビット変数を与えます。 これはポータブルですか?カーネルが特定の方法でコンパイルされた場合など、カーネルの動作が異なることを発見したくありません。ただし、Linux以外には移植できなくても問題ありません。

11
致命的なエラー:Visual Studioの「ターゲットアーキテクチャなし」
Win32またはx64モードのVisual Studio 2010を使用してc ++プロジェクトをコンパイルしようとすると、次のエラーが発生します。 >C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture" 私のプリプロセッサ定義はWIN32; _DEBUG; _CONSOLE;%(PreprocessorDefinitions)と言っています このエラーの原因と修正方法を教えてください。 // winnt.h: lines 127-136, MSVS says this is an inactive preprocessor block #if defined(_WIN64) #if defined(_AMD64_) #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) #elif defined(_IA64_) #define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( …

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