堕天使の煉獄
2015-11
10
23:56:52
やっぱ好みではないかも
先日の日記で、ゲームパッドのコンフィグ設定を別アプリでとかいう話。
その後、そうか、DirectInputの入力をチェックしながらなんかややるアプリとなると、DirectInputの初期化も自前でやらなきゃいけないんじゃん、とか気づく。
この辺やったことある人ならだよねーってかんじなのですが、DirectInputの初期化周りって鬼門なんですよね。めんどいのでいまさら触りたくも無いですw
で、そうなると結局、QTだとDirectX自体の読み込みが大変めんどいので.net版のDXライブラリ使ったC#で作るの以外、簡単にできそうな選択肢無いじゃんとなったり。
で、まあ、大した規模のアプリでもないし、一日で終わるかな。
c++でつくったソフトとのバイナリファイルのやりとりで、C#の構造体周りのビットセットとかその辺で手こずるかもだけど~とか軽い気持ちで始めたらば。
なんかあっさりとファイルからの構造体単位での読み書きとか、DXライブラリの初期化あたりはあっさり出来てしまって拍子抜け。
が、そこからがなんかめんどくさかった……。
以前ちょっと触ったのって、WPFとかいうの出来たぜ-とか言ってたVC#2010とかあたりの結構前。それから随分と……いやかなり変わっちゃってるなこれ、WPF。
あと、C#も、unityでちょっと触った時には、なんか順当に進化したc++って感じ? でわりと好感触だったんですけども。
なんだろう、MSの独自拡張がキモイのか。なんかイライラしてc++に戻りたいって感じがずっとあったり。なぜだろう。unityだとあんまし気にならなかったのに……。
ていうか、基本的に経験則でこういうときはこういうメソッド名っていうのが何年もpgやってれば出来てるものですが、C#なんかいちいちメソッド名が名前変わってるんですよね。それもなんか過去の古い、ときには間違ってるもの断ち切って新たにきれいに刷新した。っていう感じなのかというと、いまいち首をひねるようなネーミングセンス……。
なんか0からコレ触るひとには良いんだろうけど、他の言語そこそこやってる人にはなんかいろいろ厄介というか難儀な代物になってるな……という印象。
細かなc++との仕様上の相違からちょいちょい嵌ることもおおいし。
なかには蛇蝎のごとく嫌う人も居るらしい三項演算子w
が、なぜか下の書き方だとよくわからないエラーが出る。
いろいろググってみると、C#では三項演算子の後ろの二つの式はvoid型を返しちゃいかんとかなんとか。
普通に使えるケースもあるのだけど、そのときとの違いがいまいちよくわからん。
プロパティというのは便利でいいんですけども。
public int value { get; set;}
と描くだけで、セッターとゲッター両方宣言したのと同義になるのとか。呼び出す際にうしろに()要らなくなるとか、そういうの。
なんかその所為でか。
public bool IsValid {get; set;}
is + ○○系で、値が設定出来るのって違和感あるな……。
あと、この機能の所為で、()省略出来るのが当たり前の感覚になっちゃって、いざ()が必要名メソッドとかあっても()無しの所為でエラー。
しかもそのときのエラーは()が無いですぜなんてエラーメッセージとかでないで
上の三項演算子の時のエラーと同じエラー文がでたりする。
これで()書くのの忘れてるぜとか気づけねーよw
結構頻繁に使うんですよね。
toString()
ほとんど(全部?)の値型とかに.toString()とつけると文字化してくれるのでデバッグ出力とかで大活躍なのですが、最後に()つけ忘れてなんでこれでエラーなんだと、ほんとに忘れた頃にやってきて時間を奪っていく奴ですw
ほかにはなんかc++だとこうシンプルにかけるのに、C#だと同じコトするのにちまちまといろいろ書かなきゃいけない……っていう場面に出くわすことが多い感じ。
なんか書き方あるのかも知れませんが。
んまあ慣れもあるんでしょうけど。
いまではすっかり慣れちゃったので、むしろC#の書き方のが気持ち悪く感じるラムダ式とかw
そんなかんじで
大体できたぽ。
なんか構造体とかDXライブラリまわりよりも、C#とWPFのお作法のほうで時間繰ったかんじ~。
なにげに一番嵌ったのは、DXライブラリでウィンドウ無しで実行~ってのが上手く動かなかった所だったりするんですが。
別ウィンドウにしてそのウィンドウ非表示にして。
アクティブでなくてもDXライブラリのプロセスは処理する。
みたいにやってるつもりだけどもなぜか中身が更新されない(パッドの入力情報はずっと変更かからない)とかなっちゃって、ほとほと困ったりして。
なんか本家の掲示板のログとかあさってみると、「DirectInputを使用しない」にするとうまくいくとか……。
描画機能一切使わないでDirectInputの入力をGUIで処理するアプリを作ってるのですからDirectInput使わないフラグ折っちゃダメだろと本末転倒な感じw
ていうかここでもDirectInputが足をひっぱってるのか。ほんと酷いw
最近ではもう、アプリの側でもXInput専用でDirectInput不対応なソフトも増えてきてるそうな。さもありなんw
ほんとXInput専用にするとかなり面倒なくていいんですけどね。
というのが今回痛いほど身にしみたり。
で、結局最後に見つかった解決法は……デスクトップマスコット用に透明ウィンドウを使う。という大昔に追加された機能が日の目をみたりw
このアプリ画面、じつは上に透明なDXライブラリの画面が乗っかってるというw
入力だけとれればいいので、ループもタイマーで100msぐらいの頻度で回すだけで描画もしてないので、全然負荷も掛からないしコレでいいやと。
あとは、なんか異様にVisualStudio重いですね。vc++んときは起動時がなんか重くなったけどそれ以外はむしろ快適になったなーと言う感じなんですが。
(XPでVC++2010あたりの構成はとくにもたつきが酷くてストレスたまりまくった)
C#のほうだとやたらとソリューションの読み込みに時間が掛かったり、デザイナとコードの行き来のときにしょっちゅうマウスが引っかかったりとか。
pcが貧弱な製もあるのかな……。
でも実行速度は全然気にならなくなってますね。
以前のxp時代とかのWPFは結構もたつき大きくて、レスポンスの悪いイメージでしたが。
でももう、お腹いっぱい。
やっぱc++の世界にかえゆっ
その後、そうか、DirectInputの入力をチェックしながらなんかややるアプリとなると、DirectInputの初期化も自前でやらなきゃいけないんじゃん、とか気づく。
この辺やったことある人ならだよねーってかんじなのですが、DirectInputの初期化周りって鬼門なんですよね。めんどいのでいまさら触りたくも無いですw
で、そうなると結局、QTだとDirectX自体の読み込みが大変めんどいので.net版のDXライブラリ使ったC#で作るの以外、簡単にできそうな選択肢無いじゃんとなったり。
で、まあ、大した規模のアプリでもないし、一日で終わるかな。
c++でつくったソフトとのバイナリファイルのやりとりで、C#の構造体周りのビットセットとかその辺で手こずるかもだけど~とか軽い気持ちで始めたらば。
なんかあっさりとファイルからの構造体単位での読み書きとか、DXライブラリの初期化あたりはあっさり出来てしまって拍子抜け。
が、そこからがなんかめんどくさかった……。
以前ちょっと触ったのって、WPFとかいうの出来たぜ-とか言ってたVC#2010とかあたりの結構前。それから随分と……いやかなり変わっちゃってるなこれ、WPF。
あと、C#も、unityでちょっと触った時には、なんか順当に進化したc++って感じ? でわりと好感触だったんですけども。
なんだろう、MSの独自拡張がキモイのか。なんかイライラしてc++に戻りたいって感じがずっとあったり。なぜだろう。unityだとあんまし気にならなかったのに……。
ていうか、基本的に経験則でこういうときはこういうメソッド名っていうのが何年もpgやってれば出来てるものですが、C#なんかいちいちメソッド名が名前変わってるんですよね。それもなんか過去の古い、ときには間違ってるもの断ち切って新たにきれいに刷新した。っていう感じなのかというと、いまいち首をひねるようなネーミングセンス……。
なんか0からコレ触るひとには良いんだろうけど、他の言語そこそこやってる人にはなんかいろいろ厄介というか難儀な代物になってるな……という印象。
細かなc++との仕様上の相違からちょいちょい嵌ることもおおいし。
なかには蛇蝎のごとく嫌う人も居るらしい三項演算子w
が、なぜか下の書き方だとよくわからないエラーが出る。
いろいろググってみると、C#では三項演算子の後ろの二つの式はvoid型を返しちゃいかんとかなんとか。
普通に使えるケースもあるのだけど、そのときとの違いがいまいちよくわからん。
プロパティというのは便利でいいんですけども。
public int value { get; set;}
と描くだけで、セッターとゲッター両方宣言したのと同義になるのとか。呼び出す際にうしろに()要らなくなるとか、そういうの。
なんかその所為でか。
public bool IsValid {get; set;}
is + ○○系で、値が設定出来るのって違和感あるな……。
あと、この機能の所為で、()省略出来るのが当たり前の感覚になっちゃって、いざ()が必要名メソッドとかあっても()無しの所為でエラー。
しかもそのときのエラーは()が無いですぜなんてエラーメッセージとかでないで
上の三項演算子の時のエラーと同じエラー文がでたりする。
これで()書くのの忘れてるぜとか気づけねーよw
結構頻繁に使うんですよね。
toString()
ほとんど(全部?)の値型とかに.toString()とつけると文字化してくれるのでデバッグ出力とかで大活躍なのですが、最後に()つけ忘れてなんでこれでエラーなんだと、ほんとに忘れた頃にやってきて時間を奪っていく奴ですw
ほかにはなんかc++だとこうシンプルにかけるのに、C#だと同じコトするのにちまちまといろいろ書かなきゃいけない……っていう場面に出くわすことが多い感じ。
なんか書き方あるのかも知れませんが。
んまあ慣れもあるんでしょうけど。
いまではすっかり慣れちゃったので、むしろC#の書き方のが気持ち悪く感じるラムダ式とかw
そんなかんじで
大体できたぽ。
なんか構造体とかDXライブラリまわりよりも、C#とWPFのお作法のほうで時間繰ったかんじ~。
なにげに一番嵌ったのは、DXライブラリでウィンドウ無しで実行~ってのが上手く動かなかった所だったりするんですが。
別ウィンドウにしてそのウィンドウ非表示にして。
アクティブでなくてもDXライブラリのプロセスは処理する。
みたいにやってるつもりだけどもなぜか中身が更新されない(パッドの入力情報はずっと変更かからない)とかなっちゃって、ほとほと困ったりして。
なんか本家の掲示板のログとかあさってみると、「DirectInputを使用しない」にするとうまくいくとか……。
描画機能一切使わないでDirectInputの入力をGUIで処理するアプリを作ってるのですからDirectInput使わないフラグ折っちゃダメだろと本末転倒な感じw
ていうかここでもDirectInputが足をひっぱってるのか。ほんと酷いw
最近ではもう、アプリの側でもXInput専用でDirectInput不対応なソフトも増えてきてるそうな。さもありなんw
ほんとXInput専用にするとかなり面倒なくていいんですけどね。
というのが今回痛いほど身にしみたり。
で、結局最後に見つかった解決法は……デスクトップマスコット用に透明ウィンドウを使う。という大昔に追加された機能が日の目をみたりw
このアプリ画面、じつは上に透明なDXライブラリの画面が乗っかってるというw
入力だけとれればいいので、ループもタイマーで100msぐらいの頻度で回すだけで描画もしてないので、全然負荷も掛からないしコレでいいやと。
あとは、なんか異様にVisualStudio重いですね。vc++んときは起動時がなんか重くなったけどそれ以外はむしろ快適になったなーと言う感じなんですが。
(XPでVC++2010あたりの構成はとくにもたつきが酷くてストレスたまりまくった)
C#のほうだとやたらとソリューションの読み込みに時間が掛かったり、デザイナとコードの行き来のときにしょっちゅうマウスが引っかかったりとか。
pcが貧弱な製もあるのかな……。
でも実行速度は全然気にならなくなってますね。
以前のxp時代とかのWPFは結構もたつき大きくて、レスポンスの悪いイメージでしたが。
でももう、お腹いっぱい。
やっぱc++の世界にかえゆっ
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
03
[文化の日]
04
05
06
■
■
ちょっとモチベーション切れてきた
07
08
09
10
■
■
やっぱ好みではないかも
11
12
■
■
いちおう完成
13
14
15
16
17
■
■
ちょっぴり改造
18
19
■
■
さすがにこの歳で
20
21
22
23
[勤労感謝の日]
24
25
26
27
28
29
■
■
ぽっぷ
30
■
■
小ネタ
total:2076309 t:217 y:119
■記事タイトル■
■年度別リスト■
2024年
2024年12月(0)2024年11月(0)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年
2023年12月(3)2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年
2022年12月(4)2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年
2021年12月(8)2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年
2020年12月(3)2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年
2019年12月(1)2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年
2018年12月(1)2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年
2017年12月(2)2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年
2016年12月(7)2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年
2015年12月(7)2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年
2014年12月(12)2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年
2013年12月(15)2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)
■レス履歴■
■ファイル抽出■
■ワード検索■
堕天使の煉獄
https://rengoku.sakura.ne.jp
管理人
織田霧さくら(oda-x)
E-mail (■を@に)
oda-x■rengoku.sakura.ne.jp