Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

C++

string型にファイルを一気読みできるstreambuf_iteratorのおおまかな仕組み

以前の記事の C++でファイル読込み パターン別まとめ - Gobble up pudding で最後に書いた例のstreambuf_iteratorの仕組みですが、 おおまかにどうなっているのかわかりました! C++標準ライブラリのiteratorを継承して、 内部でファイルポインタを扱ってい…

Windows APIとC++でテトリス

Windows APIとC++でテトリス作りました。全ソースコードを載せていたわけではないので、いくつか質問があったのもありGitHubにすべてのソースコードを置きました。 なお、Windows APIのWndProc周りをクラス化しているので記事のと少しソースコードが変わって…

Visual C++でのDLLの一般的な作成方法(暗黙的リンク)

2016年02月07日更新 https://msdn.microsoft.com/library/81h27t8c(v=vs.110).aspx によるとメンバーに対してdllexportはだめらしいので追記。 また、main側サンプルコードが中途半端だったので、C++03以前で書きました。古い環境で開発せざるを得ないことも…

WIN32APIだけでノベルゲームエンジン

WIN32APIとC言語だけでここまでのものが作れるなんてってことで、今回はプログラムの紹介記事です。 なにかとここのプログラムでゲームプログラミングを勉強させていただいています。 WindowsでのめんどくさいVC++でのDLLの作成もしていますので、勉強になる…

STL入門 第5回 ~map編~

今日はmapです。巷ではdictionaryとか言ったり、連想配列とか言われてるあれです。巷ってどこだー。くしゃみが止まりません(;´・ω・)過去のSTLの記事はこちら↓ 定義 namespace std { template < class Key, class T, class Compare = less<Key>, class Allocator = </key>…

STL入門 第4回 ~list編~ 2

過去のSTLの記事はこちら↓ JavaScriptを勉強してる私です。しかしCSSがちょっとわかってないことに気付いたグフフ。 ちくしょー、暗記系かよ~と嘆いております。 気を取り直して、C++のSTLのlist再びです。 今回はlist::splice()の紹介です。 次の形式があ…

第4回 生成に関するパターン Prototype

Design Patterns 第4回 生成に関するパターン Prototype 前回のリンク 生成に関するパターン Prototype Prototypeパターンは生成されるオブジェクトの型が、新しいオブジェクトの複製として生成されるプロトタイプのインスタンスによって決定されるソフトウ…

第3回 生成に関するパターン Abstract Factory

Design Patterns 第3回 生成に関するパターン Abstract Factory 前回のリンク 生成に関するパターン Abstract Factory Abstract Factoryパターンを使うことで、それぞれの具体的なクラスを特定することなく共通のテーマを持った個々のファクトリをカプセル化…

第2回 生成に関するパターン Factory

Design Patterns 第2回 生成に関するパターン Factory 前回のリンク gup.monster 生成に関するパターン Factory 単一の派生クラス群からインスタンスを生成するユーティリティクラス ファクトリーデザインパターンは共通の基本型から派生しているたくさんの…

第1回 生成に関するパターン Builder

2020-07-30 Design Patterns 第1回 生成に関するパターン Builderデザインパターンの本を買いましたが、 コードが断片化して書かれているためか理解できず……。 そんなとき、WikiBooks(CC-BY-SA 3.0)でいいサンプルを見つけたので、 翻訳して、ソースコードを…

C++の名前空間と前方宣言について

最初にざっくり説明すると、C++の名前空間はC#にある名前空間と同じ概念です。Javaでいうとpackageに近い概念です。 前方宣言(forward declaration)はC++特有のものだとおもわれます。 前方宣言について あるクラスで包含(コンポジション: Composition)をし…

STL入門 第3回 ~list編~

過去のSTLの記事はこちら↓ 入門記事というよりただの自分の勉強記録になり下がってるのは仕様です。listはSTLコンテナでvectorに似ています。シーケンシャルアクセスをサポートしています。前からも後ろからも。ただし、vectorのようなランダムアクセスはサ…

STL入門 第2回 ~vector編~

第1回目はこちら↓ ってかこっちのほうが第1回っぽいのは気にしないでください。STLにはコンテナというテンプレートクラスでできているオブジェクトの入れ物があります。 大きく分けて、シーケンスコンテナ(Sequence Container)、連想コンテナ(Assosiative Co…

プログラムからBitmap画像を扱う(VC++) 1回目

今回使う画像です。使う画像は背景をキャプチャして切り取ってビットマップ(Bitmap)として保存したものです。ここからDLしたものを使わせていただきました。 何回かに分けてビットマップ画像を扱う特集をやろうと思います。Windowsな話です。 扱いが簡単なビ…

TopCoderはじめてみました SRM516 Div2 Easy NetworkXZeroOne

TopCoderっていう競技プログラミング的なものがあるんですが、 僕はアルゴリズムってか考える力が少し弱いと思ったので、気が向いたら今後もやろうと思います。 競技プログラミングと聞くとすごい敷居が高いように感じられますが(もちろん上級向けの問題は…

C++11が便利すぎる 正規表現 ~regex編~

C++11になってから複雑怪奇さをより増した一方で、 実はめちゃくちゃ使いやすく便利になっていることに最近気づき始めました。 ここで紹介するコードはC++11に対応しているものでないと実行できません。 Visual Studioだと2013以降です。 g++だと -std=c++11…

C/C++で行数を数えるときの注意とwcコマンド

C/C++を使っているとファイルを読んで、メモリ上にデータを格納したいときに メモリをどのくらい確保する必要があるか調べるのに行数を数えることが多いかと思います。 だいたいは以下の様なコードを書かれたことが多いのではないのでしょうか? 私はよほど…

STL入門 第1回 ~algorithm編~

2020-10-13 C++使うなら最低限STLくらいは知らないといけないだろうということで勉強中です。 STLくらいっていうけど結構ここから険しい道の入口なんですけどね…。 他の言語に比べて気持ち悪いシンタックスが増えるし、 どういうわけか覚えにくい……なんでだ…

C++でファイル読込み パターン別まとめ

C++

2020-07-30 C++でのファイルの読み込み方法のまとめです。 よく使われるCでもできる方法以外の 標準C++ライブラリを使ったファイル読込み方法です。 Visual C++ 2013とg++で確認しました 4パターン用意しました。 1. char *型に一行ずつ読込む 2. string型…

プロジェクトテンプレートの作成

少し暖かくなってきましたね。 今日はVisual C++プロジェクトテンプレートの作り方です。 あれ~また、同じものを書いてるよー。 WinMainを何回も何回も書いてるしーうわー。とかね。そんなのを解消するために プロジェクトテンプレートがあります(Cスタイル…

Direct2DとWindows Imaging Component(WIC)で透過PNGを表示

Direct2Dを使ってPNG画像を表示するいい方法はないか模索していたところ、 Windows Imaging Component(WIC)というのを見つけましたが、しばらくこれどうやって使うの? 状態が続いており、いろんなサイトを読んでみるも挫折…… と思ったところ神!!!といえ…

デフォルトで用意されているプロジェクトのコード修正 Visual Studio

Win32 プロジェクトのInitInstance内のインデントがおかしい……。 どのバージョンで同様のことがおこっているかわかりませんが Visual Studio 2013では 新規作成でのウィザードからWin32 プロジェクトを作ると自動で作られるひな形の BOOL InitInstance(HINST…

MSXML 6.0を使ってみた

Microsoft謹製のMSXML 6.0っていうXMLパーサを使ってみましたよ。 っていうかこれマジモンのCOMじゃないすか。かかわりたくない。COM…。 BSTRとかVARIANTとか出てくるのでびみょーな感じです。回避方法あるのかもしれないですが。調べようと思ったけど英語の…

DirectX(DirectX 9)とWindows SDKについて

Windows8(Windows7も含む)DirectXを使おうとしてちょっとあれれってなったので記事を書きます。 DirectXで開発するためにはDirectX SDKが別途必要です。当然ランタイムだけではダメです。 しかし、Windows7以降はWindows SDKと統合されているので、Visual St…

Win32++を使ってみた

毎回自分でWIN32APIのひな形だったり めちゃくちゃ薄いラッパー書くのめんどくさいですよね。 …WIN32APIのひな形だけならVC++が自動で作ってくれるけどもC言語の構造化プログラム丸出しで あぁ…って感じのしか作れないから……。 かといってATLやMFC使うまでも…

libpngライブラリを使ってみた。

2013/12/29日時点の記事です。 libpngをVisual C++ 2012で使ってみました。 途中でCygwinを使って作業した関係で/と\の表記がぐちゃぐちゃになっていますが許してください。 libpng使い方 For Visual Studio 2012(VC++) 必要なもの Visual Studio 2012(他バ…

コピーコンストラクタ&代入演算子のオーバーロード復習

基本に立ち返ってC++の復習です。 個人的にあんまり使わない機能のコピーコンストラクタ&代入演算子の使い方。 独習C++のサンプルをちょこっと変えてコードを書いてみました。 これらの機能の使い時はメンバにポインタが含まれていて、 参照先が同じ値(アド…

自動領域確保1次元配列クラスを作ってみた。

要は劣悪std::vectorみたいなクラスです。 なんかまずいコードが混じってる気がする。 特にset用のoparator()()がまずい気がする…。 長さの管理が投げやりな感じでダメダメっぽい。 vectorみたく倍々でallocしてったほうがいい気がします。 コピーコンストラ…

C++で2次元配列(文字列)の動的確保

2021-11-23 前回のC言語C言語で2次元配列(文字列)の動的確保 - Gobble up puddingで2次元配列(文字列)の動的確保の続きです。 C++のnewによる前回説明したパターンと同じやり方です。 mallocの代わりにnewを使います。mallocを使う場合はC++ではキャストが…

C/C++でファイル一覧を再帰的に取得する方法

C/C++でファイル一覧を指定したディレクトリから再帰的に取得するソースです。 WindowsとLinuxで共用できるように書いてます。 bool traverse(const char* filepath, const int maxdepth, int curdepth); が今回のファイル一覧を再帰的に取得する処理です。 …