gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

windowsでobject-cを学習

2011-10-30 14:28:21 | インポート
windowsでobject-cを学習するにはcygwinもしくはGnuStepをインストールする必要あり
http://www.gnustep.org/experience/Windows.html から
GNUstep MSYS System ,GNUstep Core ,GNUstep Devel ,Cairo Backend,SystemPreferences,Gormのパッケージをインストール。 そのままビルドすると引数が面倒なので以下のbatファイルを使用する。
cygwin、GnuStepのどちらをつかっても"@property"を宣言するとコンパイルエラーになるため、そのキーワードを
使用しないように注意する。






<form>

GnuStepでのobject cのコンパイル用batファイル



<textarea readonly="readonly" cols="75" rows="8">
set GCC="C:\GNUstep\bin\gcc"
set HEADER="C:\GNUstep\GNUstep\System\Library\Headers"
set LIBRARY="C:\GNUstep\GNUstep\System\Library\Libraries"

%GCC% -o %1 %2 -I %HEADER% -L %LIBRARY% -lobjc -lgnustep-base -fconstant-string-class=NSConstantString -enable-auto-import -g
</textarea>
</form>




<form>

cygwinでのobject-cのコンパイル方法



<textarea readonly="readonly" cols="75" rows="8">
# gcc-3 -mno-cygwin -o hello-objc hello-objc.m -lobjc
gcc-3でないと"-mno-cygwin"オプションが使えない。このオプションを指定しないとcygwin上でしか実行できなくまた、GPLライセンスに感染する。
</textarea>
</form>




test_syntaxhilight

2011-08-28 08:54:37 | インポート

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>

<title>ソースコードを綺麗に表示</title>



<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/styles/shThemeDefault.css" />
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/styles/shThemeDefault.css" />
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushBash.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushCpp.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushCss.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushDelphi.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushDiff.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushGroovy.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushJava.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushPhp.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushPython.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushRuby.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushScala.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushSql.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushVb.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com.s3.amazonaws.com/pub/sh/3.0.83/scripts/shBrushXml.js"></script>
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
</head>
<body>

private Notebook GetDefaultNotebook()
{
List<Notebook> list = GetNoteBooksList();

//javaでもつかいたいため javaでは for(Notebook note:list)
//foreach(Notebook note in list)
//{
// if (note.defaultNotebook == true)
// {
// return note;
// }
//}

for (int i = 0; i < list.Count; i++)
{
if (list[i].DefaultNotebook)
{
return list[i];
}
}

return null;
}</pre>
</body>
</html>



Android SDカードに保存

2011-03-05 16:24:37 | インポート

Android SDカードに保存

<form>

<textarea rows="8" cols="75" readonly="readonly"> androidsdk 2.2で作成した場合のみアプリをSDKに保存できる。 AndroidManifest.xmlに下記を追加 1.SDカードを優先してインストールするが、SDカードの容量が一杯だった場合は内蔵メモリへインストール android:installLocation="preferExternal" 2.内蔵メモリ優先でインストールするが内蔵メモリの容量が一杯だった場合はSDカードへ保存されます。 android:installLocation="auto" 3.内蔵メモリへのインストールのみ許可 android:installLocation="internalOnly" AndroidManifest.xmlの全て <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="org.jp.rokongame" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".rokongame" android:label="@string/app_name" android:screenOrientation="landscape">> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> </textarea>

</form>

SurfaceViewの土台

2010-08-28 08:55:38 | インポート

SurfaceViewの土台

SurfaceViewでfpsの計算、およびfpsに合わせた内容のみ表示。
acitivity(androidのメイン)のoncreateメソッドで以下のようにして使う。
MySurfaceView myView;
myView = new MSurfaceView( this );
setContensView( myView );

<form>

<textarea readonly="readonly" cols="75" rows="8">package org.jp.Box2dTest; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.SurfaceHolder; import android.view.SurfaceView; public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback, Runnable {     private SurfaceHolder m_holder;     private Thread        m_mainLoopThread;     private Bitmap        m_offscreen;     private Canvas   m_offcanvas;     private FPS           m_fps;     public MySurfaceView(Context context)     {         super( context );         m_holder = getHolder();         m_holder.addCallback( this );         m_holder.setFixedSize( getWidth(), getHeight() );         m_fps = new FPS();         m_fps.Init( 10 );     } public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3)     {     // TODO 自動生成されたメソッド・スタブ         } public void surfaceCreated(SurfaceHolder arg0)     {     // TODO 自動生成されたメソッド・スタブ m_mainLoopThread = new Thread( this ); m_mainLoopThread.start();     } public void surfaceDestroyed(SurfaceHolder arg0)     {     // TODO 自動生成されたメソッド・スタブ m_mainLoopThread = null;     } public void run()     {     // TODO 自動生成されたメソッド・スタブ         Canvas canvas;         // オフスクリーンは1度だけ作り、2回目以降はオフスクリーンを描画するだけ         while (m_mainLoopThread !=null)         {             canvas = m_holder.lockCanvas();             if (m_offscreen ==null)             {              m_offscreen = Bitmap.createBitmap( canvas.getWidth(), canvas                         .getHeight(), Bitmap.Config.ARGB_8888 );                 //Canvas offCanvas = new Canvas( m_offscreen );              m_offcanvas = new Canvas( m_offscreen );              m_offcanvas.setBitmap( m_offscreen );              m_offcanvas.drawColor( Color.WHITE );              m_offcanvas.drawText( "Offscreen buffer test.", 20, 20,                         new Paint() );             }                          canvas.drawBitmap( m_offscreen, 0, 0, null );             m_fps.calcFPS();             canvas.drawText( "calc fps" + m_fps.GetFPS(), 20, 50, new Paint() );             m_fps.fps_wait();             canvas.drawText( "wait 40fps " + m_fps.GetFPS2(), 20, 70, new Paint() );             m_holder.unlockCanvasAndPost( canvas );         }     }     } </textarea>

</form>