2003-01-01から1年間の記事一覧

yane3rd フレームワーク解析(1)

これはInsideYaneSDKに載せる記事の草稿ですwinmainが呼び出されてから、終了するまでのyane3rdの流れを見ていきましょう。解析する際に注意する点(誰に注意しているんだ?)2ndと異なり完全なマルチスレッドモデルになっている。 インターフェイスを多用し…

で、なにが言いたいのかというと

cpp

この"pipe"なり"dup2"なりはどこでも見かける関数なんですが、C標準ライブラリには含まれていないのです。誰が定義しているんでしょうか? と思っていたのですが、これPOSIX*1の1部のようです。なるほどー。 *1:UNIXシステムが採用しなければならないAPI群…

pipe exec dup2

cpp

上にあげた関数は、子プロセス制御とか、プリミティブレベルアプリケーション間通信とかに使われる物です。今わざとわかりにくく書きましたが^^;、乱暴に言えば、アプリケーションAが、"fputs()"とかで標準出力に値を吐いた時に、これを別のアプリケーシ…

クラス内の一つのメソッドでしか使われない変数を、他のメソッドから隠蔽する手段がC++には存在しない

cpp

と、思うのでしょうがどうでしょうか。staticにするとアプリケーション全体で1個の変数になってしまいますし。これは内部関数とは違うからinner classイディオムでも解決出来ないよなあ……。こういう粒度になってしまったらクラスを一つ作るべきなのかなあ(…

どうでもいい話

今更言うのもなんですけど、この日記は勉強日記なので、断定的に書いてある所にも間違いが多数あるかと思います。もし気づかれた方は教えていただけると大変助かります^^;

共通モデリング言語

UML

ようやくというかなんというか、ついにUML2.0が正式公開されます。2004年4月に。……あと半年ね。 みはえるは、UML1.0は、プログラムの作図について国際標準が出来た点では評価しています。しかし、構造の厳密性、図同士の相互変換性などの問題から、プログラ…

C++からADOを使う

VC

C++からADOを使う必要が出てきました。ADOとは"Active Data Object"の略です(多分。ActiveXではなかったような……)。マイクロソフトが提供する汎用データアクセスエンジンで、データベースなどにアクセスする場合に「VBでは」良く使われます。大変良く出来…

gccが吐くエラーの中で

gcc

"non-POD"だとかいう言葉があって、どういう意味か解らなかったのですが、ちゃんとISO C++で定義されている用語なのだそうです(これ日本語訳されてるのかな……。JISハンドブックとかに載ってるのだろうか)http://www.kmonos.net/alang/cpp/glossary.html"Pl…

それにしても

「プリコンパイル済みヘッダーの検索中に〜」でぐぐって来る人が本当に多い(2003/11/01の日記に対処法を書いています)。日記のタイトルをコレにしちゃおうかと思うくらい(笑)。みんな苦労してるのね……。

プログラマさんに100の質問

http://park6.wakwak.com/~umui/ans100/pg/index.html に回答しようと思ってがんばって書いたのに、スクリプトがエラー返して数時間分のテキストが吹き飛んだ。自分で質問つくっちまうぞコラ(笑)。

続き

gdb

試しにちょこちょこ〜とソース追って言ったら単にstdout(標準出力へのハンドル(≒ポインタ))経由でメッセージを吐いてるだけみたい(爆)。さすがCプログラミング。stdoutなんてそれを何に使うのかもしらないよ(笑・へたれすまそ)。 そうなると、中のア…

こういうのを対話型アプリケーションと言うのか?

eclipse+CDTとgdbの間に割って入って、お互いがやりとりしているメッセージをログに落とすツールを作ろうと思っています。なんの役に立つかは聞かんといて下さい。俺が知りたいくらいです^^;。それにしても、このやり方がわからない。 これから作るツール…

覚書き

gdb

GDB/MIモードは、"gdb --interpreter=mi"で起動する

Antは

ant

Another neat toolだそうですね

で、何が言いたいのかというと

cpp

「何故「河童」なの?」です^^;。 よくみたらちゃんと書いてありました(ごめんなさいごめんなさいごめんなさい)CppUnit Pre Process Aid(CppUnitのプリプロセスでの補完)みはえるは「cuppa」と書いてあると「クッパ」としか読めない駄目日本人なので、…

河童プロジェクト

cpp

日本屈指のC++メーリングリストcppllのメンバの皆様によって進められている、C++用のユニットテストサポートツール開発プロジェクト「河童」というのがあります。 http://www.unittest.org/cuppa/

覚書き

一度閉じたC++のプロジェクトは「「C/C++ development」のパースペクティブ」の画面からは再度開くことが出来ません。「リソースパースペクティブ」に画面を移せば、メニューの「プロジェクト>プロジェクトを開く」から実行できます。

で、なにが言いたいのかというと

gcc

「なんでそのmakefileは手作業で作らないといけないんだっ!」って話です(笑)。VisualC++のユーザは上記の話を聞いてもピンと来ないでしょう。なぜなら、VisalC++では統合開発環境が上記の作業を代わりに全部やってくれるからです。当然です。なんでファイ…

makeとは何をしてくれるのか?

gcc

makeは「ファイル依存性を管理して、効率的にビルド作業を自動化してくれるツール」です。 CやC++のプログラムは、分割コンパイル方式が採用されていて、ソースファイル単位で一度オブジェクトファイルにコンパイルされ、これが一つにまとまって実行形式ファ…

「make改訂版(オライリー・ジャパン)」

gcc

ちょっと細かい事をやろうとすると途端に使い方がわからなくなる為、makeの本を買ってきました。短いのですぐに読み終わるでしょう。 正直、知人からも自分の中(?)からも「んなめんどいのやめてAnt使えよ」って声が沸き上がっているのですが、Antが対C++…

プリコンパイル済みヘッダーの検索中に予期しないEOFを検出しました。

Visual Studioでコードを組んでいる時によく出るこのメッセージですが、.cppファイルに「stdafx.h」をインクルードしていないのが原因です。全てのcppは分割コンパイルされるので、プロジェクトの設定で「プリコンパイル済みヘッダーを使用する」になってい…

実行ファイルビルド成功!

gcc

ココにコードと修正内容について書きました。 http://someiyoshino.cool.ne.jp/insideyanesdk/wiki/wiki.cgi

コンパイルは出来た。しかし……

起動した瞬間に強制終了しました^^;。実行コマンドラインはこんな感じ。g++ -o testApp test.o input/yaneKeyInput.o thread/yaneCriticalsection.o thread/yaneThreadLocal.o draw/yaneFastDraw.o timer/yaneFPSTimer.o timer/yaneTimer.o input/yaneKey…

warning: muliti-line comments

gcc

gccにはやっかい、かつ、いかにもな問題があります。簡単に言うとShift-JISを認識しないのです(EUCなら大丈夫みたい)。ですから、日本語を文字列に含んでいるソースコードは簡単には読めないのです。 何故かといいますと、SJISの2バイト目のコードが"\(0x…

もいっこ覚え書き

gccのコンパイラ識別子は__GNUC__です

とりあえず一つ

"__(アンダースコア2つ)"を先頭とする識別子は、C++実装とライブラリ用に予約されているので使ってはならないというのはC++使っている人ならよく知っていると思いますが、"_(アンダースコア1つ)"を先頭とする識別子もCの実装が使うために予約されている…

gcc

現在、windows用ゲームライブラリyaneSDK3rdstyleを、gccで通るように修正中です。これはちょっとした野望の為であり、めどがついたら、移植の課程で覚えたことを色々書きたいと思っています。

最終的に具体的な対策

……は、ありません(爆)。標準C++を使う間は、我々はインクルードガードを使い続けるしかないのです。あきらめろ! あきらめるんだ! 俺(爆)!

ソースコード互換性なんてクソクラエだ

……などと言ったらCPPコミュニティに袋叩きにあいそうなので絶対に言いません(爆)。しかしですな、現実的に実現出来ない物を#ifdef分岐で個別対応してまで「どのプラットフォームでもコンパイル可能」と言うのはどうかと思うのですよ。 それよりは、それぞ…

現実的にはどうか

Visual C++では"#pragma once"というプリプロセッサ命令をヘッダファイルに入れる事によって、インクルードガードを実現します。これは素晴らしいギミックです。欲を言えば、「ヘッダファイルはすべて#pragma onge扱いにする」というオプションを用意して欲…