Code::Blocks with wxWidgets for Windows7 x64 で遊びたかった

急にGUIアプリケーションを作りたくなったので、なんとなくネイティブアプリにしたいという条件からいろいろ調べて表題の組み合わせになったのだけど
思いの外すんなり行かなかったので、忘れないようにサンプルコードをビルドできたところまでメモしておく
箇条書きでかつどんなエラー出てダメだったのか書かないあたり参考にならないことうけ合いである

Code::Blocksはプログラムとか書くときのIDE
wxWidgetsはクロスプラットフォームなGUIツールキット
gccはコンパイラ

ダウンロードしたもの

TDM-GCC : News から、tdm-gcc-webdl.exe
Code::Blocks から、codeblocks-12.11mingw-setup.exe(あとで思ったけどTDM-GCCを別で入れてるからmingw要らなかった)
wxWidgets から、wxWidgets-2.9.5.zip(セットアップのexeはなんかビルドできなかったのでzipにした。原因は分からない)

インストール

TDM-GCCをインストールする。c:\Apps\TDM-GCC-64\ にいれた
コンポーネントはデフォルトのまま。gccはcoreとC++にチェック、他は全部チェックがデフォルトだと思う
gccにobjcってあるんだけどこれ入れたらiOSアプリ作れたりするんかね?公開するのにMac本体必要だから試さないけど

wxWidgetsを展開する。c:\Apps\wxWidgets-2.9.5\ にいれた
特に書くこともないけど展開するだけだし

Code::Blocksをインストールする。c:\Apps\CodeBlocks\ にいれた
コンポーネントはFullで全部入れた
日本語化が必要な人は各自調べましょう。ランゲージファイルをダウンロードしてアレしてコレする感じで

wxWidgetsのビルド

wxWidgetsはソースコードでしか提供されていないので、各自ビルドしてライブラリを作らないといけない
各コンパイラごとにmakefileが用意されてるのでそれを使う
コマンドプロンプトを起動(Win+R→cmdとか)して、以下のコマンドを叩く

> cd c:\Apps\wxWidgets-2.9.5\build\msw\
> mingw32-make -f makefile.gcc UNICODE=1 SHARED=0 BUILD=debug clean
> mingw32-make -f makefile.gcc UNICODE=1 SHARED=0 BUILD=debug CXXFLAGS=”-fno-keep-inline-dllexport”
> mingw32-make -f makefile.gcc UNICODE=1 SHARED=0 BUILD=release clean
> mingw32-make -f makefile.gcc UNICODE=1 SHARED=0 BUILD=release CXXFLAGS=”-fno-keep-inline-dllexport”

途中で error: using typedef-name ‘COMDLG_FILTERSPEC’ after ‘struct’ みたいなエラーが出て止まる場合は
cannot build 2.9.5 with latest mingw-w64 cross compiler (gcc 4.8.1): undefined reference to wxMSLUXXX – Google グループ
この辺ながめてみると解決すると思う。具体的には下から5つめあたり参照

Code::Blocksの設定

起動したら、設定→環境 から
環境変数を開いて、下の方にある 追加 ボタンから WXWIN=c:\Apps\wxWidgets-2.9.5 となるように追加する
Code::Blocksの環境変数設定

設定→グローバル変数 から
base=${WXWIN}
include=${WXWIN}\include
lib=${WXWIN}\lib
となるように追加する
Code::Blocksのグローバル変数設定

設定→コンパイラ から
TDM-GCCを使う設定を追加する
元からある GNU GCC Compiler をコピーして、編集する方法を取った
Code::Blocksのコンパイラ設定

プロジェクト→ビルドオプション から
コンパイラをTDM-GCC使うようにした設定を選択し、リンカ設定が不足しているので追加し、ディレクトリの検索が不足しているので追加する
Debugの場合とReleaseの場合でリンカ設定、ディレクトリの検索が微妙に違うので注意する(Debugの場合はファイル名などの末尾に d が増える)

<Debugのリンカ設定>
wxmsw29ud_core
wxbase29ud
wxtiffd
wxjpegd
wxpngd
wxzlibd
Code::Blocksのリンカ設定(Debug)

<Debugのディレクトリの検索>
C:\Apps\wxWidgets-2.9.5\lib\gcc_lib\mswud を追加する
このディレクトリに wx/setup.h があるため、入れておかないとエラーが出る
Code::Blocksのディレクトリの検索(Debug)

<Releaseのリンカ設定>
wxmsw29u_core
wxbase29u
wxtiff
wxjpeg
wxpng
wxzlib
Code::Blocksのリンカ設定(Release)

<Releaseのディレクトリの検索>
C:\Apps\wxWidgets-2.9.5\lib\gcc_lib\mswu を追加する
Code::Blocksのディレクトリの検索(Release)

おわり

ここまでやれば多分、ファイル→新規→プロジェクト から wxWidgets project で作ったサンプルコードがビルド出来ると思う
ただ、手元の環境でdebugビルドが71.7 MB (75,186,249 バイト)、releaseビルドが6.42 MB (6,742,016 バイト)となかなかのびっくりサイズになったので注意
GUI出すだけなのにこのファイルサイズは如何なものか・・・多分設定で削減は可能だと思うけどそこまで見てない
その気になったら調べることにして、とりあえずコード書いて遊ぼうと思う

さくらのクラウドで旧ストレージから新ストレージに移行した

今月頭くらいから、さくらより旧ストレージをいよいよ廃止するからそろそろ移行してくれませんかねナニトゾナニトゾーってメールが来てたんですよ
すっかり忘れてたのだけどリマインドで旧スト終わるぞってメールがまたきて思い出したので、重い腰を上げて移行作業した

旧ストレージから新ストレージへの移行方法(新コントロールパネル版) | さくらのクラウドニュース

まぁこの辺見つつその通りやっただけなので特に書くこともなく無事移行が終わった感じ
どうせ料金も変わらないので標準ディスクからSSDに変えて、インターフェイスもIDEからVirtioに変えたけど問題も起きず
ブログ用途でしか使ってないような契約なのでクラウドである必要が全くないのだけど、ちかたないね

艦これの疲労度調査報告

頑張って疲労度について調査したので忘れないようにメモ
疲労度って言われてるけど、戦意高揚状態になるって言ってるし数値が増えれば高揚するって事で、記事内では戦意値と呼んでます。命名はリアル友人
なお未完成である。ひどいね

●戦意値(疲労度)概要
編成画面で『給糧艦「間宮」』が無点灯&戦意高揚状態(以下キラキラ)でない場合、戦意の数値は49で、これを基準値とする
戦意値の最大は100
戦意値が50以上でキラキラになる
基準値未満になった場合は基準値の49まで徐々に回復する
 → 回復間隔はランダムっぽい?2分~3分程に一回、+3される
基準値以上になった場合、出撃などをしなければ、数値は変動しない

●戦意値の増減
・以下の結果を戦闘終了時に複数取得し、戦意値が増減する。演習も含む
MVP :取得艦 +10
戦闘勝利 :旗艦 +3
(完全)勝利S :全艦 +1
勝利A :全艦 ±0
戦術的勝利B :全艦 -1
戦術的敗北C :全艦 -2
・以下は最後に別途計上される
出撃の帰還・撤退 :全艦 -15
演習の帰還 :全艦 ±0
遠征の帰還 :全艦 -3

●フェイスマーク範囲
戦意値0~19 赤
戦意値20~29 オレンジ
戦意値30~100 何もなし(50以上はキラキラになる)

1隻で1-1回しをしてキラキラにした上で遠征に回す、ということをよく行われてると思うんだけどこういうことである(あくまで一例)

  1. 基準値の49を開始とする
  2. 1-1-Aで勝利S(+1)+旗艦(+3)+MVP(+10)=+14で63
  3. 1-1-Bで敗北C(-2)+旗艦(+3)+MVP(+10)=+11で74
  4. 進撃終了の帰還で-15されるので59
  5. はれて50以上になったのでキラキラ達成

演習で勝利S以上をだすと全艦キラキラになるのも、基準値49の状態で勝利Sで+1された上、演習の帰還は-15されず±0なので、結果50となってキラキラになる

今のところここまで。間違いも有ると思うし、まだ確認できてないのもある。敗北Dとか。まぁ多分-3だろうとは思う
敗北D+中破or大破で-6になるんだけど、敗北C+中破or大破で-2だから、敗北Dだけ特殊な気がしてる
もう検証がめんどくさいレベルになってきてるので那珂ちゃんのファンやめます

さくらのクラウドで全データロストとかなんとか

聞いたのですが普通に見れるしログインも出来たので一つ投稿などしてみるテスト

紀伊國屋書店のkinoppy

PS VITAの記事書くと思った?残念でした!
書きたいことはあるにはあるんだけどねぇ・・・

ここ数ヶ月くらい、電子書籍を良く買うようになってて、目的は通勤電車内の暇つぶしなのでiPhoneで読めるようなのを使ってたりします
自炊もやってるんだけど、やっぱり時間がかかってめんどくさいので・・・
で、しばらくはBOOK☆WALKERを利用してたんですが、紀伊國屋書店のkinoppyも悪くないと見かけたので早速使ってみたんですよ
結論から言うと、俺みたいにライトノベル目的だと、ちょっと注意しないと行けない気がしました
よく読めば良いことなんだけど、読まずに決済して軽くがっかりだったので・・・

kinoppyの最大のメリットは、WindowsPC/iOS/Android/Sony Readerで、再購入無し回数制限無しに書籍を使い回せる点
MAC対応は検討を始めたそうなので、しばらくしたら対応してくるんじゃないかな多分
Sony Reader対応は他ではやってないので、ページ送りの遅さは目をつぶるとしても電子インクの綺麗さに魅力を感じる人には良い選択肢だと思います
俺はSony Reader持ってないのでどうでもいいです

軽く宣伝したところで、早速kinoppyで何か買おうと思って、ライトノベルを眺めてたら、ガガガ文庫の作品が315円で売ってるんですよ
これは安いと思って、早速人類は衰退しましたをまとめて6巻まで買おうと思ったんですが
電子版の場合まとめ買いが出来ない仕様のようでめんどくさかったので、とりあえず1冊だけポチっとなして、とりあえずkinoppy for PCを起動、同期したらちゃんと本棚に並んでました。当たり前ですけど
で、早速読んでみようと思って、本を開いてみたんですが、1ページ目からがっかり度合いが酷かった
以下、画像貼りつつ行きますよ

kinoppyの画面1

なんで表紙がこんな小さく表示されてるんだろう?最初全然分からなくて設定何度も見直したもん
まぁ後ででいいかと、ページ進めていったら、こんな感じになってた

kinoppyの画面2

このページくらいならきっと許してくれると思うんだけど、フォントがおかしい。どうみてもおかしい
「崎」だけ見てもおかしいし、全体的に見てもアンチエイリアスかかってなさ過ぎてこんなの読めない
デフォルトのフォントがおかしいんだなと思ったので、書籍表示設定→表示の設定を見てみると

kinoppyの画面3

LC明朝ってのになってた
確認用サンプル通りに表示されないのはおかしいけど、そのままOK押してみたら

kinoppyの画面4

とりあえず「崎」はまだおかしいけどまともになった
もうcap撮るのめんどくさいからやらないけど、これ段落ごとにやらないといけないようで
つまりこの次のページが目次なんだけど、そこもまたフォントおかしいわけで
目次でフォント設定し直しても、その次のページが本文なんだけど、またフォントry
本文のフォント設定直す→しばらく平気→次の話に入る →またまたフォントry
マジどうにかした方が良いと思うよこれ・・・

すっ飛ばしながら確認してて気づいたんだけど、挿絵がないのねこれ
表紙が小さかったことにも関係するんだけど、人類は衰退しました 5巻の詳細をよく見てみると、こんな事が書かれてました

※この作品は廉価版です。廉価版にはイラストが入りません。

・・・。なるほどなー
とりあえず1巻~4巻までには書かれてないんだけど、他のガガガ文庫の詳細見ても廉価版だと書かれてるし
イラストを抜くことで値段を下げてるんだなーと。 表紙だけは無いと本棚に並べる時困るから、ぎりぎりまで縮小してると
ガガガ文庫以外のラノベはそれなりの値段してて、廉価版とか書かれてないので普通にイラストも入ってると思います多分
きっと、漫画ならこんな事にはならないと思うんだけど、俺みたいにラノベ(に限らず小説とか実用書とかの文字中心な本)を買おうとしてる人がもし居たら、注意した方が良いと思います
イラストだけじゃなく、フォントまわりも酷いんで・・・

iOSアプリの方はアプリの方で、フォント周りの不都合はない(「崎」はおかしいままw)んだけど、フォント変更できないのでせめて明朝以外にゴシックが欲しいなーと思う
あと小さい表紙は大体画面の半分くらいの大きさで上付きに表示されます
それ以外は特筆することもないのでw

俺の場合、iOSで通勤中に読むことが目的だからPC版は良いといえば良いんだけど、でもねぇ・・・って感じでしたマジ