C++/CLIのコード
1 2 3 4 |
System::Text::StringBuilder msg; msg.Append(Application::ProductName + L" version:"); msg.Append(System::Reflection::Assembly::GetExecutingAssembly()->GetName()->Version->ToString()); |
C++/CLIのコード
1 2 3 4 |
System::Text::StringBuilder msg; msg.Append(Application::ProductName + L" version:"); msg.Append(System::Reflection::Assembly::GetExecutingAssembly()->GetName()->Version->ToString()); |
配置の順番を変える
[表示]→[その他のウインドウ]→[ドキュメントアウトライン]
でフォームをツリー上に表示したパネルが表示されるのでその中でツールバーをクライアントより下に配置する。
Visual Studio 2017をインストールまたはアップデートするとMicrosoft Visual C# 2008 Express Editionのデバッグが動かなくなる。
管理者コマンドプロンプトで以下を実行。
1 |
regsvr32 "%CommonProgramFiles%\Microsoft Shared\VS7Debug\coloader80.dll" |
駄目なら以下。
1 |
regsvr32 "%CommonProgramFiles(x86)%\Microsoft Shared\VS7Debug\coloader80.dll" |
新規フォルダに以下のCMakeFiles.txtを作成し実行してみる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
cmake_minimum_required(VERSION 3.7) set(Boost_DEBUG 1) set(Boost_DETAILED_FAILURE_MSG 1) set(Boost_INCLUDE_DIR Y:/L/boost_1_53_0) set(Boost_LIBRARY_DIR Y:/L/boost_1_53_0/lib) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) find_package(Boost 1.53 REQUIRED COMPONENTS date_time filesystem iostreams) include_directories(${Boost_INCLUDE_DIR}) link_directories(${Boost_LIBRARY_DIR}) |
Boost_INCLUDE_DIRとBoost_LIBRARY_DIRは自分の環境に合わせ、Boost_USE_STATIC_LIBSやBoost_USE_MULTITHREADEDをON,OFFしてみる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); bool Is64BitWindows() { #if defined(_WIN64) return true; // 64-bit programs run only on Win64 #elif defined(_WIN32) // 32-bit programs run on both 32-bit and 64-bit Windows // so must sniff BOOL f64 = FALSE; LPFN_ISWOW64PROCESS fnIsWow64Process; fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process"); if (NULL != fnIsWow64Process) { return !!(fnIsWow64Process(GetCurrentProcess(), &f64) && f64); } return false; #else return false; // Win64 does not support Win16 #endif } |
http://stackoverflow.com/questions/336633/how-to-detect-windows-64-bit-platform-with-net
その他、CPUとプロセスが64ビットか調べる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
typedef void(WINAPI *LPFN_GetNativeSystemInfo)(LPSYSTEM_INFO); LPCWSTR GetPlatformW() { static WCHAR sT[64]; static bool done = false; if (done) return sT; LPFN_GetNativeSystemInfo fnGetNativeSystemInfo = (LPFN_GetNativeSystemInfo)GetProcAddress( GetModuleHandle(TEXT("kernel32")), "GetNativeSystemInfo"); if (NULL == fnGetNativeSystemInfo) { lstrcpy(sT, L"Unknown"); } else { SYSTEM_INFO si = { 0 }; fnGetNativeSystemInfo(&si); switch (si.wProcessorArchitecture) { case PROCESSOR_ARCHITECTURE_AMD64: lstrcpy(sT, L"AMD64"); break; case PROCESSOR_ARCHITECTURE_ARM: lstrcpy(sT, L"ARM"); break; case PROCESSOR_ARCHITECTURE_IA64: lstrcpy(sT, L"IA64"); break; case PROCESSOR_ARCHITECTURE_INTEL: lstrcpy(sT, L"INTEL"); break; default:lstrcpy(sT, L"Unknown"); break; } } return sT; } bool Is64BitProcess() { #if defined(_WIN64) return true; #else return false; #endif } |
AMD64でしか実験してない。ARMやIA64ではどうなるのか不明。
Product Name | Ver | Directory | _MSC_VER | msvcr | cl | link |
Visual Studio 6 | 6 | C:\Program Files\Microsoft Visual Studio | 1200 | Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80×86 | Microsoft (R) Incremental Linker Version 6.00.8447 | |
Visual Studio 7 | 7 | C:\Program Files\Microsoft Visual Studio .NET 2003 | 1310 | msvcr71.dll msvcp71.dll | Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80×86 | Microsoft (R) Incremental Linker Version 7.10.6030 |
Visual Studio 2005 | 8 | C:\Program Files\Microsoft Visual Studio 8 | 1400 | msvcrt.dll msvcr80.dll | Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80×86 | Microsoft (R) Incremental Linker Version 8.00.50727.762 |
Visual Studio 2008 | 9 | C:\Program Files\Microsoft Visual Studio 9.0 | 1500 | msvcrt.dll msvcr90.dll | Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80×86 | Microsoft (R) Incremental Linker Version 9.00.30729.01 |
Visual Studio 2010 | 10 | C:\Program Files\Microsoft Visual Studio 10.0 | 1600 | msvcrt.dll msvcr100.dll | Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80×86 | Microsoft (R) Incremental Linker Version 10.00.40219.01 |
Visual Studio 2012 | 11 | C:\Program Files\Microsoft Visual Studio 11.0 | 1700 | msvcr110.dll | Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x86 | Microsoft (R) Incremental Linker Version 11.00.50727.1 |
Visual Studio 2013 | 12 | C:\Program Files\Microsoft Visual Studio 12.0 | 1800 | msvcr120.dll | Microsoft (R) C/C++ Optimizing Compiler Version 18.00.40629 for x86 | Microsoft (R) Incremental Linker Version 12.00.40629.0 |
Visual Studio 2015 | 14 | C:\Program Files\Microsoft Visual Studio 14.0 | 1900 | msvcrt.dll msvcp110_win.dll | Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86 | Microsoft (R) Incremental Linker Version 14.00.23026.0 |
Visual Studio 2017 RC | 15 | C:\Program Files\Microsoft Visual Studio\2017 | 1910 | mada -> msvcrt.dll msvcp110_win.dll | Microsoft(R) C/C++ Optimizing Compiler Version 19.10.24629 for x86 | Microsoft (R) Incremental Linker Version 14.10.24629.0 |
Visual Studio 2017 | 15 | C:\Program Files\Microsoft Visual Studio\2017 | 1910 to 1916 | ucrtbase.dll msvcp140.dll vcruntime140.dll | Microsoft(R) C/C++ Optimizing Compiler Version 19.10.25017 for x86 | Microsoft (R) Incremental Linker Version 14.10.25017.0 |
Visual Studio 2019 | 16 | C:\Program Files\Microsoft Visual Studio\2019 | 1920 | ucrtbase.dll msvcp140.dll vcruntime140.dll | Microsoft (R) C/C++ Optimizing Compiler Version 19.20.27508.1 for x86 | Microsoft (R) Incremental Linker Version 14.20.27508.1 |
Visual Studio 2022 | 17 | C:\Program Files\Microsoft Visual Studio\2022 | 1930 | ucrtbase.dll msvcp_win.dll vcruntime140.dll | Microsoft (R) C/C++ Optimizing Compiler Version 19.30.30705 for x86 | Microsoft (R) Incremental Linker Version 14.30.30705.0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
BOOL mycrepro(LPCTSTR pApp) { STARTUPINFO si = {0}; // The size of the structure, in bytes. si.cb = sizeof(si); // コンソールのタイトル // si.lpTitle = NULL; // ウインドウがデフォルトで作られた時の表示位置、STARTF_USEPOSITIONを指定した場合指定 // si.dwX=0; // si.dwY=0; // ウインドウがデフォルトでつくられた時のサイズ、STARTF_USESIZEを指定した場合指定 // si.dwXSize = 0; // si.dwYSize = 0; // コンソールのキャラクターバッファ、STARTF_USECOUNTCHARSを指定した場合指定 // si.dwXCountChars = 0; // si.dwYCountChars = 0; // コンソールの文字の色と背景の色、STARTF_USEFILLATTRIBUTEを指定した場合指定 // si.dwFillAttribute = FOREGROUND_RED| BACKGROUND_RED| BACKGROUND_GREEN| BACKGROUND_BLUE; // フラグ(一部) si.dwFlags = //STARTF_FORCEONFEEDBACK | // 普通の待機マウスカーソル //STARTF_FORCEOFFFEEDBACK | // 待機マウスカーソルなし //STARTF_PREVENTPINNING | // タスクバーにピンさせない、STARTF_TITLEISAPPIDと共に使う //STARTF_RUNFULLSCREEN | // フルスクリーン、x86コンソールでのみ有効 //STARTF_TITLEISAPPID | // lpTitleはAppUserModeIDを設定、タスクバーの同一性情報 //STARTF_USESHOWWINDOW | // SW_HIDEとかを指定 //STARTF_USESTDHANDLES | // ハンドル継承関係 0; // ウインドウの表示形態、STARTF_USESHOWWINDOWと共に使う // si.wShowWindow = SW_SHOWDEFAULT; // si.wShowWindow = SW_HIDE; // 出力用、設定不要 PROCESS_INFORMATION pi = {0}; BOOL bRet = CreateProcess( //LPCTSTR lpApplicationName, // 実行可能モジュールの名前、NULLでもいい pApp, // LPTSTR lpCommandLine, // コマンドラインの文字列、NULLでもいい // コンストじゃだめ NULL, // LPSECURITY_ATTRIBUTES lpProcessAttributes, // セキュリティ記述子 NULL, // LPSECURITY_ATTRIBUTES lpThreadAttributes, // セキュリティ記述子 NULL, // BOOL bInheritHandles, // ハンドルの継承オプション FALSE, // DWORD dwCreationFlags, // 作成のフラグ(一部) //CREATE_DEFAULT_ERROR_MODE | // エラーモードを継承しない //CREATE_NO_WINDOW | // コンソールウインドウを表示しない //CREATE_SUSPENDED | // 起動させないでサスペンドする //IDLE_PRIORITY_CLASS | // プロセスの優先順位 0, // LPVOID lpEnvironment, // 新しい環境ブロック NULL, // LPCTSTR lpCurrentDirectory, // カレントディレクトリの名前 NULL, // LPSTARTUPINFO lpStartupInfo, // スタートアップ情報 &si, // LPPROCESS_INFORMATION lpProcessInformation // プロセス情報 &pi ); if(!bRet) { DWORD dwLE = GetLastError(); return 0; } // ハンドルを閉じる CloseHandle(pi.hThread); CloseHandle(pi.hProcess); return 0; } |
HKEY_CLASSES_ROOT\Directory\Background\shell\AnyCode
と
HKEY_CLASSES_ROOT\Directory\shell\AnyCode
を消したら消えた。
msys2の64ビットをインストール。ここではmsys2-x86_64-20161025.exeをC:\local\msys64にインストールした。
以下のコマンドでインストール
1 2 |
$ pacman -S make pkg-config diffutils $ pacman -S mingw-w64-x86_64-yasm mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL |
1 2 |
$ pacman -S git $ git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg |
configureにつけたおぷりょんは適当。
1 2 3 4 |
$ cd ffmpeg $ ./configure --enable-shared --disable-static --disable-optimizations --disable-mmx --disable-stripping $ make $ make install |
1 2 |
$ pacman -S gdb $ gdb --tui ffmpeg_g.exe |