2003-01-01から1年間の記事一覧
これはInsideYaneSDKに載せる記事の草稿ですwinmainが呼び出されてから、終了するまでのyane3rdの流れを見ていきましょう。解析する際に注意する点(誰に注意しているんだ?)2ndと異なり完全なマルチスレッドモデルになっている。 インターフェイスを多用し…
この"pipe"なり"dup2"なりはどこでも見かける関数なんですが、C標準ライブラリには含まれていないのです。誰が定義しているんでしょうか? と思っていたのですが、これPOSIX*1の1部のようです。なるほどー。 *1:UNIXシステムが採用しなければならないAPI群…
上にあげた関数は、子プロセス制御とか、プリミティブレベルアプリケーション間通信とかに使われる物です。今わざとわかりにくく書きましたが^^;、乱暴に言えば、アプリケーションAが、"fputs()"とかで標準出力に値を吐いた時に、これを別のアプリケーシ…
と、思うのでしょうがどうでしょうか。staticにするとアプリケーション全体で1個の変数になってしまいますし。これは内部関数とは違うからinner classイディオムでも解決出来ないよなあ……。こういう粒度になってしまったらクラスを一つ作るべきなのかなあ(…
今更言うのもなんですけど、この日記は勉強日記なので、断定的に書いてある所にも間違いが多数あるかと思います。もし気づかれた方は教えていただけると大変助かります^^;
ようやくというかなんというか、ついにUML2.0が正式公開されます。2004年4月に。……あと半年ね。 みはえるは、UML1.0は、プログラムの作図について国際標準が出来た点では評価しています。しかし、構造の厳密性、図同士の相互変換性などの問題から、プログラ…
C++からADOを使う必要が出てきました。ADOとは"Active Data Object"の略です(多分。ActiveXではなかったような……)。マイクロソフトが提供する汎用データアクセスエンジンで、データベースなどにアクセスする場合に「VBでは」良く使われます。大変良く出来…
"non-POD"だとかいう言葉があって、どういう意味か解らなかったのですが、ちゃんとISO C++で定義されている用語なのだそうです(これ日本語訳されてるのかな……。JISハンドブックとかに載ってるのだろうか)http://www.kmonos.net/alang/cpp/glossary.html"Pl…
「プリコンパイル済みヘッダーの検索中に〜」でぐぐって来る人が本当に多い(2003/11/01の日記に対処法を書いています)。日記のタイトルをコレにしちゃおうかと思うくらい(笑)。みんな苦労してるのね……。
http://park6.wakwak.com/~umui/ans100/pg/index.html に回答しようと思ってがんばって書いたのに、スクリプトがエラー返して数時間分のテキストが吹き飛んだ。自分で質問つくっちまうぞコラ(笑)。
試しにちょこちょこ〜とソース追って言ったら単にstdout(標準出力へのハンドル(≒ポインタ))経由でメッセージを吐いてるだけみたい(爆)。さすがCプログラミング。stdoutなんてそれを何に使うのかもしらないよ(笑・へたれすまそ)。 そうなると、中のア…
eclipse+CDTとgdbの間に割って入って、お互いがやりとりしているメッセージをログに落とすツールを作ろうと思っています。なんの役に立つかは聞かんといて下さい。俺が知りたいくらいです^^;。それにしても、このやり方がわからない。 これから作るツール…
GDB/MIモードは、"gdb --interpreter=mi"で起動する
Another neat toolだそうですね
「何故「河童」なの?」です^^;。 よくみたらちゃんと書いてありました(ごめんなさいごめんなさいごめんなさい)CppUnit Pre Process Aid(CppUnitのプリプロセスでの補完)みはえるは「cuppa」と書いてあると「クッパ」としか読めない駄目日本人なので、…
日本屈指のC++メーリングリストcppllのメンバの皆様によって進められている、C++用のユニットテストサポートツール開発プロジェクト「河童」というのがあります。 http://www.unittest.org/cuppa/
一度閉じたC++のプロジェクトは「「C/C++ development」のパースペクティブ」の画面からは再度開くことが出来ません。「リソースパースペクティブ」に画面を移せば、メニューの「プロジェクト>プロジェクトを開く」から実行できます。
「なんでそのmakefileは手作業で作らないといけないんだっ!」って話です(笑)。VisualC++のユーザは上記の話を聞いてもピンと来ないでしょう。なぜなら、VisalC++では統合開発環境が上記の作業を代わりに全部やってくれるからです。当然です。なんでファイ…
makeは「ファイル依存性を管理して、効率的にビルド作業を自動化してくれるツール」です。 CやC++のプログラムは、分割コンパイル方式が採用されていて、ソースファイル単位で一度オブジェクトファイルにコンパイルされ、これが一つにまとまって実行形式ファ…
ちょっと細かい事をやろうとすると途端に使い方がわからなくなる為、makeの本を買ってきました。短いのですぐに読み終わるでしょう。 正直、知人からも自分の中(?)からも「んなめんどいのやめてAnt使えよ」って声が沸き上がっているのですが、Antが対C++…
Visual Studioでコードを組んでいる時によく出るこのメッセージですが、.cppファイルに「stdafx.h」をインクルードしていないのが原因です。全てのcppは分割コンパイルされるので、プロジェクトの設定で「プリコンパイル済みヘッダーを使用する」になってい…
ココにコードと修正内容について書きました。 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…
gccにはやっかい、かつ、いかにもな問題があります。簡単に言うとShift-JISを認識しないのです(EUCなら大丈夫みたい)。ですから、日本語を文字列に含んでいるソースコードは簡単には読めないのです。 何故かといいますと、SJISの2バイト目のコードが"\(0x…
gccのコンパイラ識別子は__GNUC__です
"__(アンダースコア2つ)"を先頭とする識別子は、C++実装とライブラリ用に予約されているので使ってはならないというのはC++使っている人ならよく知っていると思いますが、"_(アンダースコア1つ)"を先頭とする識別子もCの実装が使うために予約されている…
現在、windows用ゲームライブラリyaneSDK3rdstyleを、gccで通るように修正中です。これはちょっとした野望の為であり、めどがついたら、移植の課程で覚えたことを色々書きたいと思っています。
……は、ありません(爆)。標準C++を使う間は、我々はインクルードガードを使い続けるしかないのです。あきらめろ! あきらめるんだ! 俺(爆)!
……などと言ったらCPPコミュニティに袋叩きにあいそうなので絶対に言いません(爆)。しかしですな、現実的に実現出来ない物を#ifdef分岐で個別対応してまで「どのプラットフォームでもコンパイル可能」と言うのはどうかと思うのですよ。 それよりは、それぞ…
Visual C++では"#pragma once"というプリプロセッサ命令をヘッダファイルに入れる事によって、インクルードガードを実現します。これは素晴らしいギミックです。欲を言えば、「ヘッダファイルはすべて#pragma onge扱いにする」というオプションを用意して欲…