ハルト

プログラム関連(C#)

  • 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制御等がしやすくなる。
    formのイベントとして処理するのではなく、メインループをここに作る感じ。
    あとはformのコンストラクタあたりで以下のように初期化
               DX.SetUserWindow(this.Handle);  //親ウインドウをこのフォームに設定
               DX.DxLib_Init();                //初期化
    これでDxLibの描画をフォームに渡せるので、 自作関数(上のOnPaint)で普通に描画すればフォームにDxLibが使えます。
    OnPaintを呼び出すのは外部(ここではMain関数)であることがポイント
    ちなみにC#デフォルトのTimerコンポーネントではfps制御等には全く役に立たないので使わないように。
    (そういう用途に使うものではない)

プログラム関連 (C/C++)

別ページに分けてみました。なんかあったら勝手に追加します。

Windows7におけるVisualStudio2008のリンクエラーについて

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便利機能集

確かにまとめたものがあってもいいよなーと思って作ってしまった。
デバッグに役立つショートカットキーとか、各種ウインドウ等の説明が書いてあります。
(6/25)なんか急に思い立って少し加筆修正。
欲しければどうぞ。
VisualStudio_function.pdf
4-7のカーソル位置保存する機能は2010にはないのかもしれない。

csv文字列の読み込み

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でのメモリリークの検出

とりあえず参考リンク参照のこと。

DXライブラリ関係

・最低限+αのソース→【dxlibmain.cpp
ダブルバッファリングとウィンドウタイトル変更、ウインドウモードなどの関数をあらかじめ書いておいたソース。 DXライブラリ導入後、コピーして貼りつければ多分動きます。(Escapeで終了)

基本的な扱い方

まずはリファレンスサンプルプログラムDXライブラリ ゲームプログラム講座
C言語ゲームプログラムの館なんかも役立つと思います。
あとノベルゲー寄りですがここも→ゲーム作りで学ぶ!実践的C言語プログラミング

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

その他の扱い方

ゲーム製作技術メモ←こちらに任せます(というかリンク先に書きます)

その他

ゆんさんのメモ書き。役立つのに埋もれてるので(特に後者)リンクしときます。(半分くらい自分用)
C2C++
バグを減らすために


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-11-21 (木) 11:25:35 (1616d)