Visual Studio
if文で遅くなる? GPU のコードは if 文を避けるべき、ということはなんとなく知っていたので実験した。 __kernel void test_if(__global float* out, int mode) { int id = get_global_id(0); float x = (float)id; if (mode == 0) { // 発散なし(全員同じ…
OpenCLとは OpenCL は、CPU・GPU など異なる計算デバイスを共通の仕組みで扱うための並列計算 API。 カーネルと呼ばれる関数をデバイス上で実行し、大量データを高速に処理できる。 実務では主に GPU 計算に使われることが多い。 インストール 以下のコマン…
imguiとは まず読み方ですが、「イムギューアイ」 と読む人が多いです。 DirectX12 や OpenGL などのグラフィックスライブラリを使って GUI を描画するライブラリです。 GUI の制御をコードのみでできるので使いやすいのが特徴で、特にデバッグ時に重宝する…
はじめに CScrollViewを使えない場合にお使いください。 手っ取り早く以下のようにできます。 CScrollHelperの定義 ScrollHelper.h #pragma once class CScrollHelper { public: CScrollHelper(); virtual ~CScrollHelper(); void AttachWnd(CWnd* pWnd); vo…
Assimp とは 3Dモデルファイルを読み込むことができるライブラリです。 導入 Dialog Base の MFC に組み込む手順を示します。1. Dialog Base の MFC プロジェクトを作成します。 名前は SampleAssimp としました。2. Tools > NuGet Package Manager > Manage…
アイコン作成手順 1. Copilot でアイコンを作成する 2. GIMPで16,32,48,256にリサイズしてpngで出力 メニュー「画像 → 画像の拡大・縮小」で幅・高さを変更できます。 3. https://ao-system.net/alphaicon/ で4つの画像をまとめて .icoを作成 4. できたファ…
リソースで Dialog に Combo Box を配置 1. Toolbox から Combo Box を Dialog へドラッグ&ドロップすることで Combo Box が作成できます。 2. ID を振ります。IDC_XXXX_YYYY_COMBO と IDCで 始まり COMBO で閉めるのが良いでしょう。 3. Type を Drop List …
結論 3x3 も 4x4 も余因子展開で逆行列を求めると速い。 4x4のDirectXの行列計算よりかなり速いのは驚いた。 コード // ConsoleInverseTest.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include <random></random></iostream>…
Eigenとは 線形代数のライブラリでC++だと「まずこれを使っておけ」的な有名ライブラリだそうです。 ヘッダーのみで構成されており、コンパイルが不要なのも特徴です。 導入方法 1. Releases · libeigen / eigen · GitLab こちらより、最新版を落としてくだ…
ドハマりしました 結論以下で変わります。 SetFontでは変わらなかったので、America Google のAIが返してきたやり方です。 WM_SETFONTが良いみたいです。 HFONT hFont = CreateFont( 36, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_B…
はじめに FFmpeg の開発ライブラリの導入について書いていきます。 私は通常の FFmpeg が導入されている状態で以下を実行しました。 手順 1. vcpkg の導入 私の場合は c:\vcpkgにインストールしておりますので cd c:\vcpkg としました。 インストールがまだ…
はじめに 子から親にPostMessageして、親がそのイベント受け取ります。 やっていることは単純です。その実現方法について書いていきます。 手順 1. SampleChildEvent という dialog based のアプリを作成します。2. Class Wizard で CDialogEx を基底クラス…
はじめに MFC Application を作ろうと思うとウィザードが出てきてどれにチェック入れればいいか迷いますよね? 私がおすすめする設定を記していきます。 Application Type Appication Type は Single Document にします。 Application type options の Docum…
メニューの下に表示される下矢印を消したい CMFCToolBar::SetBasicCommands(lstBasicCommands); コメントアウトすればよい。 または Class Wizard で User Interface Features > Menubar and toolbar options > Personalized menu behavior のチェックを外す…
PDFium とは PDFiumは、Googleが開発した軽量で高速なPDFレンダリングライブラリです。 PDFファイルの表示、テキスト抽出、注釈処理などをC/C++で制御でき、ベクター描画を高精度にラスタライズする構造的なAPI群を提供します。 PDFiumは商用利用可能です。A…
インストールは不要 Windows SDK に含まれているらしいので Direct2D はインストール不要です。 2D の描画ならこれでいいんじゃないでしょうか? ちなみに DirectX12 を使って 2D 描画するより、Direct2D による 2D 描画の方が速いそうです。 もちろん GDI …
OpenGL はインストール不要 OpenGL は Windows SDK に備わっているライブラリなのでインストール不要です。 ちなみに Windows SDK(Software Development Kit)とは、Windowsアプリケーションを開発するための公式ツール群です。 ただ、OpenGL は 2017 年に…
手順 やり方だけサクッと書きます。 1. MFC SDI でアプリを作成する。 2. CDockablePane を継承した CLeftPane, CRightPane クラスを作成する。 #pragma once // CLeftPane class CLeftPane : public CDockablePane { DECLARE_DYNAMIC(CLeftPane) public: CL…
Tesseract のインストール方法 1. Tesseract の github のページ からダウンロードする。 2. tesseract-ocr-w64-setup-5.5.0.20241111.exe を起動する。 3. Language は English を選択する。 4. Addtional script data を開いて Japanese を含むチェックを …
WebView2 のインストールの手順 1. Microsoft Edge WebView2 | Microsoft Edge Developer 下側より Evergreen Standalone Installer x86をダウンロードする。 2. ダウンロードした MicrosoftEdgeWebView2RuntimeInstallerX64.exe を管理者権限でない状態でダ…
DLLの基礎知識 DLL はアプリケーションに呼び出されるプログラムの事で、リンク時には .lib ファイルが必要です。 デバッグ時には .pdb ファイルが必要です。 OpenCVのDLLを見てみる 参考のために OpenCV の DLL を見てみましょう。 opencv\build\x64\vc16\b…
はじめに Visual Studio の C++ で OpenCV を動かすまでの手順です。 OpenCV のインストール後、簡単なプログラムで OpenCV が動作することを確認します。 OpenCVのインストール手順 1. OpenCVのページへ遷移する。2. Library > Release をクリックする。 3.…
手順 1. MFC を選び、プロジェクト名を SampleWindowPaint とし Dialog Base で作成する。 2. Base Class を CWnd にして Class CImageView を作成する。 3. CImageView に CImage m_Image を定義する。 4. CImageView に BOOL LoadImageFile(LPCTSTR path);…
はじめに 作業手順を Readme.md に残したのでほぼそのまま貼っておきます。 手順 1. MFC を選び、プロジェクト名を SampleTabControl とする。 2. Dialog Base で作成する。 3. ToolBox から Dialog に Tab Control を貼り付ける。 4. Class Wizard で IDC_T…
はじめに MFC の SDI でアプリケーションを作ろうと思っているが、まず初手(MFC アプリケーションウィザード)の設定方法が分からないので色々やってみる。 使用ソフトは VS2022。言語は英語にしている。 メニューと移動できないツールバーとステータスバーの…
はじめに Visual Studio 2022 で開発する際のメモを残しておきます。 基本的なこともかなり多いです。 ソリューションとは Visual Studio 2022(VS2022)における「ソリューション」は、複数のプロジェクトをまとめて管理するためのコンテナのような役割を果…