Programming
クラス設計は難しい... 前回のエントリーで書いたテトリス Windows APIとC++でテトリス - Gobble up pudding のプログラムを書いて、オブジェクト指向というよりクラス設計は難しい、 本当に難しい!!ということを痛感しました。 絶対にコレ!っていう定石…
Windows APIとC++でテトリス作りました。全ソースコードを載せていたわけではないので、いくつか質問があったのもありGitHubにすべてのソースコードを置きました。 なお、Windows APIのWndProc周りをクラス化しているので記事のと少しソースコードが変わって…
2016年02月07日更新 https://msdn.microsoft.com/library/81h27t8c(v=vs.110).aspx によるとメンバーに対してdllexportはだめらしいので追記。 また、main側サンプルコードが中途半端だったので、C++03以前で書きました。古い環境で開発せざるを得ないことも…
WIN32APIとC言語だけでここまでのものが作れるなんてってことで、今回はプログラムの紹介記事です。 なにかとここのプログラムでゲームプログラミングを勉強させていただいています。 WindowsでのめんどくさいVC++でのDLLの作成もしていますので、勉強になる…
前回書いたエントリーの 関数内で宣言した配列変数をreturnしてはいけない - Gobble up puddingの 具体的なサンプルってことで書いただけです。 こんなの暗号化じゃねーってはなしですが、まぁ許してください(´・ω・`) 家族に見られちゃまずいあんなファイル…
C言語では関数内で宣言した配列変数を素直にreturnする方法がありません。 知らないとこんなコードを書きがちですが、 この書き方では関数内で積まれたスタックがリターン時に解放されてしまうので、 返したアドレスが無効になってしまって、たまたま動くこ…
今日はmapです。巷ではdictionaryとか言ったり、連想配列とか言われてるあれです。巷ってどこだー。くしゃみが止まりません(;´・ω・)過去のSTLの記事はこちら↓ 定義 namespace std { template < class Key, class T, class Compare = less<Key>, class Allocator = </key>…
過去のSTLの記事はこちら↓ JavaScriptを勉強してる私です。しかしCSSがちょっとわかってないことに気付いたグフフ。 ちくしょー、暗記系かよ~と嘆いております。 気を取り直して、C++のSTLのlist再びです。 今回はlist::splice()の紹介です。 次の形式があ…
C言語で混乱しやすいのはポインタの表記ですね。 次の2つを見てみましょう。 char *foo[10]; char (*bar)[10]; このとき、fooとbarは意味が違います。 どちらかが 「char型へのポインタの要素数10の配列」 でもう一方が 「要素数10のchar型の配列へのポイン…
Design Patterns 第4回 生成に関するパターン Prototype 前回のリンク 生成に関するパターン Prototype Prototypeパターンは生成されるオブジェクトの型が、新しいオブジェクトの複製として生成されるプロトタイプのインスタンスによって決定されるソフトウ…
Design Patterns 第3回 生成に関するパターン Abstract Factory 前回のリンク 生成に関するパターン Abstract Factory Abstract Factoryパターンを使うことで、それぞれの具体的なクラスを特定することなく共通のテーマを持った個々のファクトリをカプセル化…
Design Patterns 第2回 生成に関するパターン Factory 前回のリンク gup.monster 生成に関するパターン Factory 単一の派生クラス群からインスタンスを生成するユーティリティクラス ファクトリーデザインパターンは共通の基本型から派生しているたくさんの…
2020-07-30 Design Patterns 第1回 生成に関するパターン Builderデザインパターンの本を買いましたが、 コードが断片化して書かれているためか理解できず……。 そんなとき、WikiBooks(CC-BY-SA 3.0)でいいサンプルを見つけたので、 翻訳して、ソースコードを…
Javaを使い始めて日が浅い僕ですが、Javaのファイル読込みのエラー処理の仕方ってサイトを見るとみんな微妙に違うんですよね。 ぼくはこうするのがいいんじゃない?と思ってるんですが、世間のJavanese(Javaを使う人)はどうしてるんでしょ。ちなみにJavaづか…
最初にざっくり説明すると、C++の名前空間はC#にある名前空間と同じ概念です。Javaでいうとpackageに近い概念です。 前方宣言(forward declaration)はC++特有のものだとおもわれます。 前方宣言について あるクラスで包含(コンポジション: Composition)をし…
過去のSTLの記事はこちら↓ 入門記事というよりただの自分の勉強記録になり下がってるのは仕様です。listはSTLコンテナでvectorに似ています。シーケンシャルアクセスをサポートしています。前からも後ろからも。ただし、vectorのようなランダムアクセスはサ…
第1回目はこちら↓ ってかこっちのほうが第1回っぽいのは気にしないでください。STLにはコンテナというテンプレートクラスでできているオブジェクトの入れ物があります。 大きく分けて、シーケンスコンテナ(Sequence Container)、連想コンテナ(Assosiative Co…
今回使う画像です。使う画像は背景をキャプチャして切り取ってビットマップ(Bitmap)として保存したものです。ここからDLしたものを使わせていただきました。 何回かに分けてビットマップ画像を扱う特集をやろうと思います。Windowsな話です。 扱いが簡単なビ…
TopCoderっていう競技プログラミング的なものがあるんですが、 僕はアルゴリズムってか考える力が少し弱いと思ったので、気が向いたら今後もやろうと思います。 競技プログラミングと聞くとすごい敷居が高いように感じられますが(もちろん上級向けの問題は…
備忘録を兼ねて書きます。C#でFormを日本語で作っていると、 C#の自動生成コードがそのままで日本語になってしまうので、 それらを使う側のコードも日本語を使うことになり、 実害はないんだけれどもこれは精神衛生上よろしくない… なんて思いの方は多いかと…
C++11になってから複雑怪奇さをより増した一方で、 実はめちゃくちゃ使いやすく便利になっていることに最近気づき始めました。 ここで紹介するコードはC++11に対応しているものでないと実行できません。 Visual Studioだと2013以降です。 g++だと -std=c++11…
C/C++を使っているとファイルを読んで、メモリ上にデータを格納したいときに メモリをどのくらい確保する必要があるか調べるのに行数を数えることが多いかと思います。 だいたいは以下の様なコードを書かれたことが多いのではないのでしょうか? 私はよほど…
2020-10-13 C++使うなら最低限STLくらいは知らないといけないだろうということで勉強中です。 STLくらいっていうけど結構ここから険しい道の入口なんですけどね…。 他の言語に比べて気持ち悪いシンタックスが増えるし、 どういうわけか覚えにくい……なんでだ…
サブタイトルは冗談です。 本当にこの手法を使ってものすごい勢いでメールボムを作ると法律に抵触します。ある程度細かく説明していますが、一定の知識がない人にはできないと思われるため、 まぁ小学生みたいのには悪用されないだろうと思い、 書きます(凄…
Javaのサーバアプリにクライアント側からPOSTで文字列でXMLを送りつけたらXMLの解析時にパースエラーになって1時間ほどハマった時の話。 結論を先に言いますと、BOM付きのまま文字列としてサーバに送信してしまったのでJAXBでコケた。ということです。対策と…
少し暖かくなってきましたね。 今日はVisual C++プロジェクトテンプレートの作り方です。 あれ~また、同じものを書いてるよー。 WinMainを何回も何回も書いてるしーうわー。とかね。そんなのを解消するために プロジェクトテンプレートがあります(Cスタイル…
Direct2Dを使ってPNG画像を表示するいい方法はないか模索していたところ、 Windows Imaging Component(WIC)というのを見つけましたが、しばらくこれどうやって使うの? 状態が続いており、いろんなサイトを読んでみるも挫折…… と思ったところ神!!!といえ…
Win32 プロジェクトのInitInstance内のインデントがおかしい……。 どのバージョンで同様のことがおこっているかわかりませんが Visual Studio 2013では 新規作成でのウィザードからWin32 プロジェクトを作ると自動で作られるひな形の BOOL InitInstance(HINST…
他の人のソースコードをみて、va_listを使っているのがあって、そういえば、自分では使ったことがなかったなと思い、可変長引数を受けとって処理するva_list, va_start, va_arg, va_endを使ってみました。 おおまかな使い方は行かな感じ。 void hoge(const c…
いまさらながらStrutsの開発環境を構築しよう!っていうお話です。 さて、どうしよう……。Javaといえばeclipseですね。そうですね。 別にメモ帳で書いてもいいんだけどさ。いや、やだ。 以下、とりあえず動かすのに最低限の記述を。とっかかりって大事ですよ…