プログラミング

プログラミングに関する記事です。

C++

C++のSTL(標準テンプレートライブラリ)を使いこなそう

C++の標準テンプレートライブラリ(STL)は、強力で使いやすいデータ構造とアルゴリズムを提供します。 このライブラリを使いこなすことで、効率的なプログラムを簡単に書くことができるようになります。 本記事では、STLの基本的なコンテナである...
React

ReactとTypescriptでexif-jsを使ってEXIF情報を取得する方法

趣味でEXIF情報を取得するアプリを作る際にReact×Typescriptでexif-jsを使ってEXIF情報を取得する際に少し悩んだので備忘録的な感じで記録しておきます。 なお、本記事ではReactやTypescriptについては使える...
プログラミング問題

【プログラミング問題1】ピラミッドの出力

プログラミング初学者のためのプログラミング問題1「ピラミッドの出力」です。 本問題は標準出力への出力を想定していますが、問題の本質はアルゴリズムをコードに落とし込むことなのでブラウザへの出力など他の出力を使用しても問題ありません。 解答例は...
C言語

C言語で「最大」「最小」「合計」「平均」「標準偏差」を求める

C言語の学習をしていると割と初めの方の課題で「最大」「最小」「合計」「平均」「標準偏差」を求めよといった課題に出くわすと思います。 条件分岐、繰り返し、配列、関数化が必要となるため、文法の習得を行うには良い課題かと思いますが、Yahoo知恵...
C言語

Windowsでfwriteを使ってバイナリ出力するとゴミデータが挿入される原因と対策

業務でMFCを使いながらC言語のfwriteを使わなければいけない機会があったのですが、その時少しハマったことがあったので備忘録として残しておきます。 この記事では、Windowsでfwriteを使ってバイナリ出力するとゴミデータが挿入され...
MFC

MFCアプリ上に別のアプリを貼り付ける方法

自分の作成するアプリケーション上に別のアプリケーションを貼り付けたいということがたまにあります。 この記事では、MFCで作成したアプリケーション上に別のアプリケーションを貼り付ける方法について紹介します。 プロジェクトの作成 プロジェクトは...
C言語

C言語で重複しない任意の数の乱数を生成

アルゴリズムの勉強をしていると、ソートプログラムなどで大量の乱数データが必要な場合があります。 この記事では、C言語で重複しない任意の数の乱数を生成する方法について紹介します。 乱数の取得方法 C言語で乱数を生成する場合には「rand」関数...
MFC

MFCでコマンドライン引数を解析

アプリケーションに対して外部からの入力としてコマンドライン引数を渡したいことがよくあります。 特定の拡張子にアプリケーションを紐づければ特定の拡張子のファイルを開くことでアプリケーションに引数としてファイル名が渡されるため、一般的なアプリケ...
VC++

任意のウィンドウのハンドルを取得

Windows上でプログラムからウィンドウの操作を行う場合、「ウィンドウハンドル」と呼ばれるウィンドウを識別するためのハンドルを使用します。 // ウィンドウの位置・サイズ設定 ::MoveWindow(hWnd, 0, 0, 100, 1...
VC++

実行ファイルのパスを取得(Win32)

プログラム内でパスを扱う場合「カレントパス」と「実行ファイルパス」を取り違えることが原因で発生する不具合がよくあります。 「カレントパス」はアプリケーションを実行した場所のことで、必ずしも「実行ファイルパス」と同じになるわけではないのでこう...
MFC

MFCでタスクバーのようなアプリの作り方

機械上で動作するアプリケーションなどで、タスクバーのように画面の端に固定してその上には何もかぶらないようにしたい場合があります。 公式ドキュメントによると、アプリケーションデスクトップツールバー(以下AppBar)を使用することでタスクバー...
WPF

WPFのButtonにTemplateを適用すると部分的にクリック判定されない問題と解決策

WPFでButtonにTemplateを適用した際に部分的にクリックが判定されない問題に出くわして、解決するのに少し苦労したのでその問題と解決策を備忘録としてまとめます。 結構色々なサイトなどを調べてみましたがどうも同じ現象に遭遇してる人が...
Javascript

JavaScriptでOpenCV.jsを使用して画像処理

画像処理というとOpenCVが有名で、C++やPythonで使用されるのが一般的です。 OpenCVにはJavaScript版のOpenCV.jsがあり、Nodeだけでなくブラウザ上でも画像処理を行うことができます。 ブラウザ上で画像処理を...
MFC

MFCでOpenCVを使用して画像処理

画像処理というとOpenCVが有名で、C++やPythonで使用されるのが一般的です。 一昔前だと、MFCでOpenCVを使用する場合にはパソコンにOpenCVをインストールした上でプロジェクトの設定でライブラリとインクルードの追加を行う必...
MFC

MFCの描画処理でダブルバッファリング(GDI)

描画処理を行う際に画面にちらつきが発生することがたまにあります。 ちらつきの原因は「背景描画」→「オブジェクト描画」が高速で行われることにあり、対策としては一般的にダブルバッファリングという手法が用いられます。 この記事では、MFCでの描画...