2011年12月28日水曜日

VCでUTF-8 BOMなしファイル作成方法

UTF-8版のLuaで、読み込みできるファイルを作る場合
FILE pFP = NULL ;
_wfopen_s( &pFP, L"FileName", L"w,ccs=UTF-8" ) ;

これでUTF-8のファイルができるけど、BOM(シグネチャ)ありしか
パラメータでは選択できず、BOM(シグネチャ)なしを指定できない。
VisualStudioのエディタでは指定できるのに・・・・。

どうやっても書かれてしまうのは仕方ないので、そのすぐ後でSeekする。
fseek( pFP, 0, SEEK_SET ) ;

これで読めるようになった。

スマートな方法はないのか?
open時にccsの指定はなしか、バイナリにしてしまって、
文字列を自分でUTF-8に変換して出力すれば大丈夫そうな気もするが。。。

2011年6月19日日曜日

Android開発備忘録 その3

エミュレータ画面の回転

[左CTRL]+[F11]

2011年6月13日月曜日

セーフモードのコマンドプロンプトからシステムの復元を実行する方法

マシン電源投入後、F8を適当に連打。

「セーフモードとコマンドプロンプト」を選択。

起動したら、コマンドプロンプトに「rstrui」と打ち込む。

システムの復元ダイアログがでてくる。

適当に復元するリストを選択。

2011年6月1日水曜日

Android開発備忘録 その2

ログの出力の仕方について

[android.util.Log]をインポートする。

Error
Log.e( String tag, String msg )
Warning
Log.w( String tag, String msg )
Information
Log.i( String tag, String msg )
Debug
Log.d( String tag, String msg )
Verbose
Log.v( String tag, String msg )

それぞれの関数で出力。

で、プログラムを実行してもコンソールに出力されない。

eclipseのメニューから
[ウィンドウ]-[ビューの表示]-[その他]を選択
リストから
[Android]-[LogCat]を選択

この画面に表示されるらしい。
LogCatのタブの右にアイコンあり、フィルタ機能が使える。
V ⊃ D ⊃ I ⊃ W ⊃ E となり、
Eを選択した場合はErrorのみ表示
Wを選択した場合はErrorと、Warningを表示
Vを選択した場合はすべて表示される。

2011年5月30日月曜日

Android開発備忘録 その1

最初はHelloWorldから。
Javaもeclipseも使ったことないし、適当に入門サイトを検索。
とりあえず書いてある通りに進めてみる。

新規プロジェクト作成

[ファイル]-[新規]-[プロジェクト]を選択してダイアログを表示。
リストから[Android]-[Android プロジェクト]を選択して[次へ]を押下。
表示されたダイアログの各項目を以下のように入力

・プロジェクト名
[HelloWorld]
VisualStudioで言うところの、ワークスペース名か?
・内容
[ワークスペース内に新規プロジェクトを作成]を選択(デフォルトのまま)
[デフォルト・ロケーションを使用]をチェック(デフォルトのまま)
・ビルド・ターゲット
[Android 2.3.3]をチェック
最新の3.1にしてみたいけど、まあとりあえずここはそのまま従ってみる
・プロパティー/アプリケーション名
[HelloWorld]
VisualStudioで言うところの、プロジェクト名か?
別の入門サイト曰く「この名前でAndroidケータイに登録される」とのこと。
・プロパティー/パッケージ名
[net.yary.helloworld]
Javaのパッケージ名になるのかなぁと思って、命名規則を調べてみた。
ユニークな名前の必要があるみたいで、
xxx.co.jpと言う会社のプロダクトなら「jp.co.xxx.zzz」みたいになるらしい。
yary.netを頭に付けてみる。
・プロパティー/アクティビティの作
[HelloWorldMain]
なんのことやらわからないけど、activityクラスを継承したメインクラスの名前みたい。
・プロパティー/最小SDKバージョ
[10]
どうやら[ビルド・ターゲット]のリストで選んだターゲット名に対応する
APIレベル列の値をいれておけばいいみたい。

全部入力したら完了ボタンを押下。

ソース修正

プロジェクトの作成が終わると、eclipseのパッケージ・エクスプローラの中にHelloWorldが出現
[HelloWorld]-[src]-[net.yary.helloworld]-[HelloWorldMain.java]を
選択するとソースが表示される。

このソースを下記のように修正する。

・5行目
android.widget.TextViewのインポートを追加
・12~14行目
TextViewのインスタンスを生成して、文字列をセット。
setContentViewに作ったTextViewを設定する。

エミュレータ設定

早速実行してみたいが、エミュレータの設定が必要らしい。
[実行]-[実行構成]を選択。
ダイアログの左のリストから、[Android アプリケーション]-[新規構成]を選択
[Android]タブのプロジェクト入力欄の右にある参照ボタンを押下
リストから[HelloWorld]を選択。
[ターゲット]タブのマネージャボタンを押下。
(Disableになって押せないので、手操作/自動のラジオボタンの自動を選択しなおす)

マネージャの画面で新規ボタンを押下。
新しくアンドロイドのデバイスを作れるみたい。
名前は適当に[Android2.3.3]
(スペースが間にあるとダメ)
ターゲットは[Android 2.3.3 - API Level 10]
(新しいバージョンのAPI使う場合は別途用意
プログラムは低いバージョンでも、デバイス側は新しくても大丈夫なのかも
とりあえず、2.3.3で作成してみる)
あとはデフォルトのままで作成。
元の画面のリストに作ったAVDが表示されたら選択する。

実行

そしていよいよ実行。
エミュレータ画面が起動してANDROIDの文字が表示される。
右にいくつかのボタンと、キーボードがある。
適当にクリックしても、何も起きない。
eclipseのコンソールタブにログが以下のように出てる。
最終行は赤文字

どうやらボタンを押したのがまずいらしい。
もう一度やり直しておとなしく待っていると、ANDROIDの文字が絵になってグラデーションがアニメーションしだした。
さらに待つと、携帯の待ち受け画面になってHelloWorldが起動した。

これは起動までに時間がかかる・・・。
ソースを修正もう一度実行してみる。
・・・・・ゴクリ。

起動まで3分ぐらいかかる。

んー、この起動の遅さは何とかならんのか。

調べてみたら、エミュレータ落とさなくていいみたい。
なーんだ。

Android開発環境構築メモ

Android
http://developer.android.com/sdk/index.html

インストーラ(installer_r11-windows.exe)を使ってインストール。

途中JDKが入っていないと先に進めない為、oracleのサイトへ
[Download JDK]をクリック→使用OSに対応したものをダウンロード。
JDKインストール後、Androidのインストーラに戻って、一旦戻るボタンを押下。
次へボタンで先にすすめるようになる。

インストールの最後で、Android SDK and AVD Managerの起動にチェックが入っていることを確認。
Android SDK and AVD Managerが起動し、各種パッケージのダウンロードとインストールが行われる。

Eclipse
http://mergedoc.sourceforge.jp/

[eclipse3.6 Helios]→Ultimate/Full All in One (JRE あり) をダウンロード。
任意の場所にファイルを展開。
eclipseフォルダ内のeclipse.exeを起動。

[ヘルプ]-[新規ソフトウェアのインストール]
作業対象に[https://dl-ssl.google.com/android/eclipse/]と入れ、追加ボタン押下。
適当に名前を入れて([Android Plugin]とか)OKボタン。

下のリストに[開発ツール]が出てきたら、すべて選択して次へ
ライセンスの画面で合意して完了ボタンを押下。

右下のプログレスにインストール中と表示され、しばらく待つと再起動する。
再起動後、[ウィンドウ]-[設定]でダイアログを表示し、左のリストから[Android]を選択。
SDKの場所を指定する。
デフォルトだと以下
C:\Program Files (x86)\Android\android-sdk

eclipse.ini
インストールフォルダの直下、eclipse.exeと同じところにiniファイルがある。
--launcher.XXMaxPermSize
512m
-Xms1024m
-Xmx1024m