忍者ブログ
凡人の日々の経過を記録
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



最近、705NKの勝手アプリがあついようで、GW中いろいろためしてみた。
結構アプリ入れてみた。
入れるだけじゃなくて自分で作ってみたくなった。
そこでS60アプリをはじめようと思い参考書まで買って今日からはじめた。

「Symbian OS C++プログラミング 第2版」という本。¥9,240(税込)。
かなり高いが、本は結構見境なく買ってるので、抵抗なくおさつを出してしまった。
また三日坊主か?!<- 今回はやめて!!

基本初心者なので、かなりつまづきそう。
Webページにメモをとりながら進めていきたいと思う。

ブログのほうは気が向いたらということで。。

拍手[0回]

PR


最近、Perlというものに興味があってちょっと勉強してみようかなと思った。
さっそく本屋さんへ立ち寄りPerlの本を探したら何冊かあって、その中で読みやすそうな初心者向けの本を買ってしまった。
その本を買った決め手は、本の後ろの発行刷数をみて、他の本よりも多かったのでこれに決めた。

買った本のタイトルは「すぐわかるPerl」で著者「深沢千尋」である。

とりあえず、まだ読みはじめだがPerl言語をさわった感覚としてはC言語と似た感じを受けた。
ちょっと配列の扱いかたがCと違うので戸惑っているが、慣れればこっちの方が簡単そうな印象。

foreachはなんだかとっても便利そうで、たまにスクリプトとかでも見てたんだけどいまいちわからなくて飛ばして読んでたんだけど、結構簡単でかなり重宝しそう。

目標は、ファイル操作ができるようになることと、引数を操作できるようになることかな。
飽きない程度にがんばろう!

拍手[0回]



最近、C++を勉強したのでS60のプログラミングに挑戦してみることをはじめた。
私が持っている携帯は、702NKⅡ(Nokia6680)で、
とりあえず、フリーでできる環境環境を探して見たところ、Carbide.c++ Expressというのがあった。
早速、ダウンロードしてきた。
それと、SDKとActivePerlも落としてきた。

パソコンにインストールしたところ、かなりの容量を使ってしまった。
インストールは結構時間がかかったが無事成功。

早速プロジェクトを作って、ビルドして、実行してみた。

エミュレータの実行はかなり時間がかかったが無事動いてくれた。
あと、sisファイルも作成できた。

つぎに、表示される文字を変えようと思って、.locファイルの文字を変更したんだけど、どうも変更されない。
ビルドとかしたけど、やっぱり変更されない。

で、いろいろやった結果、
\Epoc32\release\winscw\udeb\z\system\appsの中に作成されているファイルの中の.rscファイルを削除してリビルドしたところ、表示がかわった。

よくわからないけど、消さないとだめなのかな。

あと、リビルドするときconsole画面でエラーがでる。
どうやら、"rm"というコマンドがwindowsにないからと思われる。
そこで、プロジェクトファイル内に、makefile.defsを作成して、
内容を、

RM := del

としてみたら、エラーなくうまくビルドできた。

IDEを使っているといろいろと不都合がところどころあるようで、そのへんは臨機応変に使っていかないとダメみたいだ。

拍手[0回]



コンソール上でゲームを作る場合、どうしてもクリアしなくてはいけない問題がある。
それは、キー入力と画面操作。

キー入力には一般にscanfやgetcなどがあるが、これを使用するとそこで処理が止まってしまうので都合が悪い。
そこで、kbhit()とgetch()を利用する。
kbhit()はキー入力がある場合、1を返し、それ以外は0を返すもので、処理は止まらない。

画面操作としては、エスケープシーケンスといったものがある。しかし、WindowsXPの場合は、このエスケープシーケンスによる操作ができないため、代用できるものが必要になる。
画面クリアとしてはsystem( "cls" )を実行する方法がある。
system()関数はコマンドプロンプト上で実行できるコマンドをCプログラム中で書くことができるものである。
コマンドプロンプト上で"cls"と入力すれば画面クリアすることができるので、これを利用する。

以下にプログラム例をのせる

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main( void )
{
char c;
while (1)
{
system( "cls" ); // Clear
if (kbhit() == 1)
{
c = getch();
switch (c)
{
case 0x1b: /* Esc */
case 0x03: /* Ctrl+c */
return 0;
default:
printf( "key : %c\n", c );
}
}
}
}

拍手[0回]



最近は、会社でC++の勉強をしている。

一応、講習という形で行われているのだが、声も届かず、黒板も見えず、はっきり行って自分で勝手にやっていたほうがいいのではと思う。
ただ、演習問題が配られるので、それは結構勉強になるのでやっている。

C++は、大学のときにちょっとやっていて、オブジェクト指向とか、クラスとかの辺は、ほどほどのものなら作れた。

今回、コピーコンストラクタというものがでてきたのだが、これがくせものだった。
クラスのメンバ変数で、int型とかchar型とかの静的な場合は、ただ単にコピーするだけで良いのだが、ポインタといった動的な場合は、ひと工夫が必要らしい。

デフォルトのコピーコンストラクタの仕様は、ビットごとにオブジェクトをコピーする、というものなのだが、ここで、メンバにポインタが使われている場合、そこに格納されたアドレスがそのままコピーされてしまう。

よって、コピーコンストラクタによって生成したオブジェクトとその元の動的なメンバ変数は、同じ場所をさしてしまうため、メモリの開放をダブって行ってしまう危険性がある。

私は、このことをはじめ知らなかったので、デストラクタでdeleteとやっていたのだが、どうもエラーがおこってしまい、うまくいかず悩んでしまった。
大学でも、同じ経験があったので、これがわかったことは、かなりの収穫だった。

コピーコンストラクタと同じように、代入演算子も同じらしい。


C言語はなかなか奥が深いが、C++も奥が深そうだ。
馴れるまでが大変そうだ。

拍手[0回]




Powered by 忍者ブログ  Design by © まめの
Copyright © [ ずくのない凡人の日記 ] All Rights Reserved.
http://bambooflow.blog.shinobi.jp/