問題タブ [visual-c++-2012]

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.

0 投票する
1 に答える
174 参照

c++ - クラス外のメンバー テンプレート関数定義が Visual Studio 2013 のビルドに失敗する

私が扱っている複雑なテンプレート コードの最小限の下に貼り付けました。

コードは非常に簡単なので、何も説明しません。このコードを Visual Studio 2013 (別名 VC++12) でコンパイルできません。次のエラーが発生します。

好奇心から、上記のコードを g++ (4.4.7) でコンパイルしてみましたが、問題なくコンパイルされました。

コードがWindowsでコンパイルに失敗する理由について、誰かが説明を提供していただければ幸いです。修正はさらに甘いでしょう。:)

0 投票する
0 に答える
140 参照

visual-studio-2012 - 特定の lib ファイルがリンカー コマンドから削除されましたか?

大規模なプロジェクト ( BCI2000 )の拡張機能で OpenCV スイートの一部を使用しようとしています。OpenCV テスト プログラムを正常にコンパイルして実行しましたが、メイン プログラムで OpenCV 関数をリンクすると、LNK2019: unresolved external symbol でリンクが失敗します。プロジェクトのプロパティ マネージャーの最上位のプロパティ ページに、次のコマンド ラインが表示されます。

/OUT:"D:\Users\Admin\Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.exe" /MANIFEST /NXCOMPAT /PDB:"D:\Users\Admin\ Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.pdb" /DYNAMICBASE "opencv_calib3d2410.lib" "opencv_contrib2410.lib" "opencv_core2410.lib" "opencv_features2dlib2410.lib" "opencv_flann2410. " "opencv_gpu2410.lib" "opencv_highgui2410.lib" "opencv_imgproc2410.lib" "opencv_legacy2410.lib" "opencv_ml2410.lib" "opencv_nonfree2410.lib" "opencv_objdetect2410.lib" "opencv_ocl2410.lib" "opencv_photo2410.lib" " "opencv_superres2410.lib" "opencv_ts2410.lib" "opencv_video2410.lib" "opencv_videostab2410.lib" /MACHINE:X86 /SAFESEH /PGD:"D:\Users\Admin\Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\ custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"OpenCVTestSPModule.dir\Release\OpenCVTestSPModule.exe.intermediate.manifest" /ERRORREPORT:PROMPT /LIBPATH: "D:\lib\opencv\build\x86\vc11\lib" /TLBID:1/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"OpenCVTestSPModule.dir\Release\OpenCVTestSPModule.exe.intermediate.manifest" /ERRORREPORT:PROMPT /LIBPATH:"D:\lib\opencv\build\ x86\vc11\lib" /TLBID:1/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"OpenCVTestSPModule.dir\Release\OpenCVTestSPModule.exe.intermediate.manifest" /ERRORREPORT:PROMPT /LIBPATH:"D:\lib\opencv\build\ x86\vc11\lib" /TLBID:1

一方、ビルド出力ボックスで実行されたリンク コマンドは、追加の OpenCV LIBPATH:s が含まれていることを確認しますが、すべての OpenCV .lib ファイルが見つからないため、当然このエラーが発生します。

"/OUT:D:\Users\Admin\Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.exe" /INCREMENTAL:NO /LIBPATH:D:\lib\opencv\build \x86\vc11\lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ws2_32.lib ....\frameworks\LibTiny\Release\ LibTiny.lib ....\frameworks\CoreLib\Release\BCI2000FrameworkCore.lib ws2_32.lib ....\frameworks\SigProcModuleLib\Release\BCI2000FrameworkSigProcModule.lib ....\frameworks\CoreLib\Release\BCI2000FrameworkCore.lib .. ..\frameworks\LibTiny\Release\LibTiny.lib ws2_32.lib winmm.lib /NODEFAULTLIB:msvcrt /NODEFAULTLIB:msvcrtd /NODEFAULTLIB:msvcprt /NODEFAULTLIB:msvcprtd /MANIFEST "/MANIFESTUAC:level='asInvoker' uiAccess='false' " /manifest:embed "/PDB:D:/Users/Admin/Documents/Visual Studio 2012/Projects/bci2k/build/CMakeFiles/custom/OpenCVTestSPModule/Release/OpenCVTestSPModule.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT "/IMPLIB:D:/Users/ Admin/Documents/Visual Studio 2012/Projects/bci2k/build/CMakeFiles/custom/OpenCVTestSPModule/Release/OpenCVTestSPModule.lib" /MACHINE:X86 /SAFESEH /machine:X86 /include:_SigProcRegistry OpenCVTestSPModule.dir\Release\PipeDefinition.objdir\Release\PipeDefinition.objdir\Release\PipeDefinition.obj

「追加のインクルード ディレクトリ」と「追加の依存関係」は同じプロパティ シートにあるため、コンパイル時にプロパティ シートが読み込まれることがわかります。この問題の原因を知っている人はいますか? 対象はWin32(リリース)、IDEはVS2012です。

関連する可能性があります: プロパティ マネージャーには、"Microsoft.Cpp.Win32.user" という名前のプロパティ シートが存在します。これを上に移動しようとすると (後の評価で)、エラー ("Could not find the import for (path to this prop-file) in the import group with label "PropertySheets" and (condition) in the file (path to project)") が表示されます。

プロパティ シートの優先順位は、テスト プログラムで問題なく再配置できます。

0 投票する
1 に答える
427 参照

c++ - アセンブリで記述された関数を dllexport (および dllimport) することは可能ですか?

私はいくつかのモジュールを含む大規模な C++ プロジェクトを持っています - それらはすべて動的ライブラリにコンパイルされています。Windows、Linux、MacOSX など、複数のプラットフォームをターゲットにしています。

プロファイリング テストにより、いくつかの重要なポイントが明らかになりました。たとえば、ハッシュ コンピューティング、いくつかのベクトル操作など、パフォーマンスが大幅に向上しました。この機能を SSE/MMX を使用してアセンブリに実装しました。

インライン アセンブリが許可されていない Visual C++ の x64 ターゲットに戻すまでは、すべて問題ありませんでした。そして、私は立ち往生しています。また、これらの関数は他のモジュールでも使用されます。

基本的に、私が達成しようとしているのは、アセンブリの DLL 内にあるいくつかの関数を実装することです。私はこれを試しました:

Api.h

Api.asm

名前マングリングのため、これは明らかに機能しません。

私もこれを試しました:

Api.h

API.cpp

Api.asm

この場合、まだ解決されていない外部シンボル (sample_fun_impl) に関するリンカ エラーが発生しますが、これは奇妙です。なぜなら、これは実際にはプライベート関数であり、DLL 内からのみ呼び出されるからです。

私がやろうとしていることをすることは可能ですか?

0 投票する
1 に答える
1734 参照

.net - Visual Studio 2013 の VC++ 2012 ランタイム ブートストラップ パッケージはどこにありますか?

ClickOnce 経由でデプロイされた .NET 4.5.2 アプリケーションがあります。これは、Visual Studio 2012 用の Visual C++ Redistributable を必要とするMagick.NETライブラリを使用します。2013 パッケージで試しましたが、動作するには 2012 バージョンが必要です。残念ながら、Visual Studio 2013 で可能な前提条件の下にリストされている唯一のバージョンは、2013 バージョンです。他のバージョンはどこにも見つかりません:

Visual Studio 2013 ClickOnce 前提条件ウィンドウ

Visual Studio 2013の ClickOnce アプリにVisual C++ 2012ランタイム ライブラリを含めるにはどうすればよいですか?

編集: Visual Studio の別のバージョンについて、ほとんど注目されていない非常によく似た質問があるようです。

0 投票する
0 に答える
343 参照

visual-studio-2012 - BITMAPFILEHEADER と BITMAPINFOHEADER が認識されない

Win32でビルドされたVisual Studio 2012でビルドされたvcxprojプロジェクトがあります。このコードには、ヘッダーにビットマップ ヘッダー構造体共用体の定義があります。ユニオン定義は、アプリケーションのヘッダーに設定されます。問題は、ヘッダーが BITMAPFILEHEADER と BITMAPINFOHEADER を認識できないことです。#include WinGDI.h と Windows.h を追加しましたが、まだ認識されません。

C/C++ プリプロセッサの定義を変更して次のコードを追加しようとしましたが、それでも機能しません

コンパイラに定義を認識させるには、どのような設定が必要ですか?

PS。@RetiredNinja のコメントによると、受信したエラーは bmf と bmi の両方で C2079 です。

0 投票する
1 に答える
31 参照

mixed-mode - C# .NET アプリケーションで CLI ラッパーを介して Win32 を使用しているときにブレーク ポイントに入る

次のソリューション構造があります: プロジェクト ファイル

次の構造を使用して Win32 にアクセスすると:

WinForm と CLI ラッパーはデバッグできますが、Win32 DLL はデバッグできません。MFC テスターを介して Win32 DLL の単体テストしかできません。MFC GUI ではなく WinForm GUI から実行する場合、Win32 DLL までシームレスにデバッグする方法はありますか?

私は次のことを試しました:

VS2010 を使用する混合 C# C(win32) プロジェクトにシンボルが読み込まれない

他のアイデアはありますか?それは可能ですか?

0 投票する
1 に答える
1800 参照

c++ - Visual C++ の CreateWindow() は常に null を返す

これが私のコードです。WinMain エントリ ポイントで、クラスを登録してウィンドウを作成しようとしましたが、CreateWindow() 関数は常に NULL を返します。ただし、RegisterClass() 関数は成功しました。私は何を間違えましたか?