[[ハルト]]

*プログラム関連(C#) [#n6fd120a]
-C#-DXLib関連~
DXLibDotNetでのDrawFormatStringの自作。~
適当にDxLib.cs弄って追加するなりpartialにするなり。~
使い方はC/C++DXLibのではなく、C#のWriteLineなどの使い方({0},{1}などを置き換える)~

        public static int DrawFormatString(int x, int y, int color, string str, params object[] args)
        {
            for (int i = 0; i < args.Length; ++i)
            {
                str = str.Replace("{" + i.ToString() + "}", args[i].ToString());
            }
            return DX.DrawString(x, y, str, color);
        }
-フォームとDxLibを共存させてみようとかいう方法その1~
普通にVisualStudioでフォームアプリケーション作ってProgram.csを見ると以下のようになっているはず。~
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
このコードを
       static void Main()
        {
            Application.EnableVisualStyles();     //visualスタイルの有効化    
            //フォーム生成
            Form1 form = new Form1();
            form.Show();
            
            while (form.Created)   //フォームがある間ループ
            {
                //自作関数。
                form.OnPaint();
                Application.DoEvents();
            }
        }
こう書き換える。
こうすることでfps制御等がしやすくなるかも。~
こう書き換える。~
こうすることでfps制御等がしやすくなる。~
formのイベントとして処理するのではなく、メインループをここに作る感じ。~
あとはformのコンストラクタあたりで以下のように初期化
            DX.SetUserWindow(this.Handle);  //親ウインドウをこのフォームに設定
            DX.DxLib_Init();                //初期化
これでDxLibの描画をフォームに渡せるので、
自作関数(上のOnPaint)で普通に描画すればフォームにDxLibが使えます。~
OnPaintを呼び出すのは外部(ここではMain関数)であることがポイント~
ちなみにC#デフォルトのTimerコンポーネントではfps制御等には全く役に立たないので使わないように。~
(そういう用途に使うものではない)~

*プログラム関連 (C/C++)[#h7084a04]
別ページに分けてみました。なんかあったら勝手に追加します。~

**Windows7におけるVisualStudio2008のリンクエラーについて [#i04e37ed]
Windows7でVisualStudio2008を使ってビルドするとエラーが発生することがあるようです。(PC依存、または開発規模依存かもしれない)~
「Microsoft(R) Incremental Linkerは動作を停止しました」というメッセージボックスが出て、LNK1000だかなんだかがエラーとして通知されます。~
直し方は~
http://archive.msdn.microsoft.com/KB948127 (msdn)~
のページのDownloadsタブから修正パッチ"VS90-KB948127.exe"をダウンロードして実行すれば直るようです。~
~
詳しくはここ→http://support.microsoft.com/kb/948127~

会室でエラー発生が確認されたPCには入れました~

**VisualStudio便利機能集 [#p9c2747f]
確かにまとめたものがあってもいいよなーと思って作ってしまった。~
デバッグに役立つショートカットキーとか、各種ウインドウ等の説明が書いてあります。~
(6/25)なんか急に思い立って少し加筆修正。~
欲しければどうぞ。~
【[[VisualStudio_function.pdf:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?plugin=attach&pcmd=open&file=VisualStudio_function.pdf&refer=%A5%CF%A5%EB%A5%C8]]】~
4-7のカーソル位置保存する機能は2010にはないのかもしれない。~

***csv文字列の読み込み [#i67a0d47]
Cでcsvからのデータ読み込み。いい方法があれば教えてほしいです~
以下のようなファイルに普通にsscanf(fscanf)を使おうとするとカンマも文字列とみなされ、読み込みが失敗する。~
データ~
 100,0.3,helloworld,25
読み込み(文字列strに上記データが入っているとする)~
 sscanf( str , "%d,%f,%s,%d" , ... );
→これでは%sでhelloworld,25が読み込まれて最後の%dが正常に機能しない。~
そこで、%sでなく%[^,]を使うとうまくいく。~
%[^*]は*に入れた文字以外を読み込むという意味~
上の例では、~
 sscanf( str , "%d,%f,%[^,],%d" , ... );
とするとうまく読み込めるはず~

***VisualStudioでのメモリリークの検出 [#la1fd484]
とりあえず[[参考リンク:http://marupeke296.com/TIPS_No7_SearchMemoryLeak.html]]参照のこと。

*DXライブラリ関係 [#oce48752]
・最低限+αのソース→【[[dxlibmain.cpp:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?plugin=attach&pcmd=open&file=dxlibmain.cpp&refer=%A5%CF%A5%EB%A5%C8]]】~
ダブルバッファリングとウィンドウタイトル変更、ウインドウモードなどの関数をあらかじめ書いておいたソース。
DXライブラリ導入後、コピーして貼りつければ多分動きます。(Escapeで終了)~

***基本的な扱い方 [#a040f033]
まずは[[リファレンス:http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html]]や[[サンプルプログラム:http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html]]や[[DXライブラリ ゲームプログラム講座:http://homepage2.nifty.com/natupaji/DxLib/dxlecture_main.html]]。~
[[C言語ゲームプログラムの館:http://dixq.net/g/]]なんかも役立つと思います。~
あとノベルゲー寄りですがここも→[[ゲーム作りで学ぶ!実践的C言語プログラミング:http://www.usamimi.info/~guiprog/game/]]~

10年度の講座のも一応貼っておく~
[[DXライブラリ講座]]

***その他の扱い方 [#y851e281]
[[ゲーム製作技術メモ]]←こちらに任せます(というかリンク先に書きます)

**その他 [#xd11ce8a]
ゆんさんのメモ書き。役立つのに埋もれてるので(特に後者)リンクしときます。(半分くらい自分用)~
[[C2C++:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?%A4%E6%A4%F3%2FC2C%2B%2B]]~
[[バグを減らすために:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?%A4%E6%A4%F3%2F%A5%D0%A5%B0%A4%F2%B8%BA%A4%E9%A4%B9%B0%D9%A4%CB]]~



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS