1. はじめに DxLibは、C/C++向けのゲームライブラリで有名である。今回は、C#版のDxLibの環境構築を行ったので、手順をまとめる。 2. なぜC#版を使用するのか DxLibは、C/C++向けのライブラリとして広く知られている。ネットのサンプルコードを見ても、基本的にC/C++で書かれていることが多かった。しかし、今回は勉強も兼ねて思い切ってC#版を使用することとした。 3. 前提 今回は、下記の環境を前提とする。 ・OS: Windows ・開
1. はじめに SES業界で働いたことがある筆者が、SESの良いところと悪いところを書いていく。もちろん、筆者が書いていることが全てではないが、メリットとデメリットを知っておき、職業選びのきっかけとして欲しい。 2. SESとは SESとは「Software Engineering Service」といって、派遣先企業に常駐して働くエンジニアのことである。 厳密な定義は筆者でもわからない。筆者の感じでは、自社とは異なる企業に行き、派遣先企業の人とともにソフトウェ
1. はじめに スマートポインタは、動的に確保されたメモリを自動解放する仕組みのことである。これによって、deleteを書き忘れて、メモリリークすることを防ぐことができる。 今回は、簡単なプログラムでunique_ptrの使い方をまとめる。 2. new/deleteを使用したメモリの動的確保 スマートポインタの導入以前のプログラムは、new/deleteを使用してメモリを動的に確保していた。 #include <iostream>class Car {priv
1. はじめに DLL(Dynamic Link Library)は、プログラムが実行時に必要な機能やデータを提供する共有ライブラリのことである。DLLを使用することで、他の言語で書かれたプログラムで同じコードを共有することができる。 今回は、Visual Studio 2022環境でDLLを作成し、呼び出し側から実行して動作するための手順を記す。 2. DLLに関する前提知識 DLLに関する前提知識を下記に示す。 (1) DLLは単体で動作できない DLL
1. はじめに C++向けのXMLパーサーであるXerces-C++をVisual Studio 2022環境で使用したのでメモをする。 想定する環境は、下記である。 ・OS: Windows 10 ・Visual Studio 2022 Community ・xerces-c-3.2.5 ・Cmake(GUI版) 3.26.4 2. Xercesのダウンロード 下記のURL(https://xerces.apache.org/xerces-c/downloa
1. はじめに Unityでは、画面上にボタンを配置し、クリック時のイベント処理を行うことができる。今回は、Unityを使用したボタンクリックイベントの作成方法をまとめる。なお、OSはmac環境を想定している。 2. ボタンクリックイベントの作成手順 2.1 新規プロジェクトの作成 新規プロジェクトを作成する。まず、Unity Hubを立ち上げて、「New project」を選択する。 All templatesから3D Coreを選択し、Project na
1. Unityで画面遷移をしてみる Unityはゲームを効率よく開発するゲームエンジンの一つである。このツールを使用すると、ツール上でゲーム開発が可能である。 今回は、画面遷移をUnityを使用してやってみようと思う。 環境:Mac OS venetura Unityのバージョン:2022.3.15f1 2. Unityで画面遷移を実現しよう 2.1 新規プロジェクトを作成する まず、新規プロジェクトを作成する。Unity Hubを開き、「New Pr
1. はじめに 前回は、ChatGPTからスマートポインタの簡単な概要を教わった。スマートポインタとは、通常のポインタよりも高度な機能を持ったポインタであり、特に、メモリの確保・解放を自動的に行えるメリットがある。 また、C++のスマートポインタとして、unique_ptr、shared_ptr、week_ptrの3つが存在することがわかった。今回は、その中からunique_ptrについて詳しくChatGPTに教えてもらう。なお、裏どりはしていないため、情報を鵜呑みに
1. はじめに ChatGTPは非常に優秀で、ちょっとした質問であればググるよりも簡単に調べることができる。そこで、疑問点をChatGTPに質問し、教えてもらった内容をまとめてみようと思う。ただし、厳密な裏どりができてないので、見る人は注意すること。 今回は、スマートポインタについて取り上げる。 2. スマートポインタとは何か? スマートポインタとは何か調べるために、下記の質問を行った。 スマートポインタは、通常のポインタよりも高度な機能を持ったポインタであ
1. はじめに C++のvectorは、可変長のデータを便利に取り扱えるため、非常に便利である。ここでは、vectorの使い方を簡単に記す。 2 vectorとは 2.1 概略 配列の表現方法には、固定長と可変長がある。固定長とは、データサイズが固定であるため、実行時にサイズ変更することができない(例:int data[10])。一方、可変長では、プログラム実行時にデータサイズを自由に変更できる。その場合は、vectorなどを使用する 2.2 vectorとは
1. はじめに 単体テストで役に立つライブラリが、xunitと呼ばれる単体テストフレームワークである。これを使用すると、アサーションやスタブなどの作成が楽になる。 C/C++環境におけるxunit系ツールの代表格が、「GoogleTest」である。GoogleTestとは、Google社が作成したC/C++用の単体テストツールのことである。昨今、よく使用されているようだ。 そこで、今回は、WSL環境(Ubuntu)にインストールする手順をまとめる。 2. Googl
1. はじめに 自宅での筆者のメインPCは、Windows OSを搭載したものである。Windowsは、多くのユーザが使用するOS業界のデファクトスタンダードであるが、ソフト開発現場においては、Windowsだけを使用するとは限らない。特に、C/C++での開発では、Linuxを使用するケースも少なくない。 Linuxは、オープンソースのOSであることがメリットであるが、Linuxでの開発の場合、開発環境が自動的にLinuxとなることが前提である。例えば、「ライブラリがLi
1. はじめに 最近、職場でJenkinsを使用することがある。Jenkinsとは、フリーのCI(Continueous Integration)ツールで、設定をすることでビルド作業を効率よく実行できる。例えば、「バージョン管理ツールからソースコードを持ってきてビルドする」といった一連の作業が一発で出来る。 Jenkinsを使うことで、チームの開発効率を向上できるため、実現場でも導入している組織も少なくない。 筆者も勉強を兼ねて自宅で使ってみようと思い、環境構築を実施
1. はじめに チーム開発で役に立つツールの一つが、プログラムの変更履歴を管理する「バージョン管理ツール」である。このツールでは、「最新のバージョンはどれか」「最新版との差分は何か」といった変更履歴を把握できる。複数人で作業する場合には必須のツールだろう。 ツールの種類は様々だろうが、2大巨頭は「Git」と「Subversion」だろう。昨今では、Gitが人気だそうだが、SVNを使用する会社も少なくない。 筆者は最近、SVNを使用する機会があったため、自分の整理のため
1. はじめに 筆者は、バグの事象を調べることが好きである。例えば、動画サイトなどでゲームのバグ動画を調べ、「なんでこんな事が起こるのだろう?」などと考える。 バグの大半は、些細なミスが原因であるが、外部事象を確認すると非常に不可解に見える。今回は、筆者のライフワークであるバグを題材として、筆者が経験したECサイトのバグの話をまとめたいと思う。 2. ECサイトとは2.1 ECサイトの概要 ECサイトとは、Webサイト上から商品を購入できるサービスである。ECサイト
1. はじめに 世の中には様々なプログラミング言語がある。例えば、PHP、C/C++、Pythonなど挙げればきりがない。エンジニアは用途によって、言語を選択し、プログラミングする。 メジャー言語以外でも、用途によって役立つ言語はたくさんある。例えば、PowerShellは、自動化スクリプトなどで使うことが多く、知っていれば業務の幅が広がる。 最近、初めてPowerShellを触る機会があったため、起動方法をまとめる。 2. PowerShellの概要2.1 Power