忍者ブログ
ADMINNEW ENTRY
C A L E N D A R
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

HP→http://sora-blue.net/~kuar/index.html
<<< 6 7 8 9 10 11 12 13 14 15 16 >>>
2024-04-28(Sun)
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2009-04-05(Sun)
無題
ようやく基盤ができた。
ダウンロード(cpp)
exeの配布について考えたがためしに別のPCで動かしたら見事動かなかった。
エラーの吐き方が.NET Frameworkをインスコしてないときと同じだったのでおそらくWin32APIのアプリケーションであろうともVC++2008で作ってしまえば.NET Frameworkが必要になって涙目ということらしいな。
回避するにはVC++6でコンパイルするしかねーがEXの拡張ウィンドウってのは6ではサポートされてないから自力で読み込んで実装するほかないわけで
WS_EX_LAYEREDが対応してないってエラーがでたがそいつを外して普通のものにしたらとりあえずは動いた。
透過ができてない以外は2008で作ったのと同じ動き。iniとかもうまくいっているようだ。
ただし少々ちかちかするのが目立つ。
配布する分には残りの課題は透過をなんとかできれば十分やっていける。でもこいつがもっとも厄介

<追記>
透過余裕でした。
PR


2009-04-04(Sat)
無題
今日は発狂した。
VC++2008において文字列などなどについて多々変更が加えられていて特に文字列においては大幅に変えられていて古いコードがはじかれまくった。
もともとのコードの意味がわからん俺は4hくらい悩みつつネットサーフィンしたという残念な結果に。
型変換は特にうるさかった。おかげでショートカット作るのに苦労した。
ついでにc++にした。拡張子だけ。その際引数をつけれませんとかいうエラーがでたが対処できなかったのでメゾットぶっとばして本体にいれてやった。
結果ソースがさらに残念になった。

ショートカットを作るのはいいのだがその作られたショートカットより起動をするとパスが違いますと言われる。
おかしいよな。考えられる理由ってのはショートカットから起動したパスからリソースを持ってこようとしている。
つまりリソースはショートカットをクリックしたディレクトリから参照している。
解決策はフルパスでリソースをそれぞれ参照してやればいい。
めんどくせーてか頭悪いなー俺もプログラムも。

んでフルパスにしたら直った。画像はフルパスじゃないのに写ってるのはなんでだろー
ダウンロード(cpp)


プログラムやりだすとブラウザのタブが軽く50~60タブくらい超えるから困る。
軽くタブのタイトル見えないレベル


2009-04-03(Fri)
無題
今日の進展:特になし。
アイコンを独自のものにしたくらい。あとOS起動時に起動できるように下準備。
ショートカットの作り方がどうにも複雑そうなので暫し時間がかかりそうだ。
.rcに書けばexeに画像やらなんやら埋め込まれるらしい。
当然ながらその分exeの容量は増えるが。
案外簡単だった。Javaは結構厄介だったのだが。

ダウンロード(c)


2009-04-02(Thu)
無題
最前表示切替実装とiniによる設定保存機能を搭載。
やっとiniだよ!なんか無駄に苦労した。

[Section1]
top=0
left=0
って感じにしたかったのにできずにサンプルも見つからなかったので
[section1]
top=0
[section2]
left=0

という残念な使い方になってしまった。まさにごり押し。
どうやればひとつにまとまるのかっていうサンプルがないのにこういうsectionのわけかたなのはたくさんサンプルあるっていう不思議。
てかおれの躓くところが異端なのかもしれない。
ぼちぼちせめてメゾットくらいわけてやりたいが引数があるといろいろエラーがでて大変なので難しいなこれ。

終了を押した際に音が流れつつアプリは終了したいのだが仕様的にアプリが終了してしまうとリソースも解放してしまってアウトなので実装するにはタイマー使って終了を押したところでタイマーを入れてウィンドウは完全透過処理で音楽が終わるまで待機した後終了したらそれなりのことを実装できそう?
そうなるなら音声ファイルの長さ習得ができればなんとか。

あとスレ見てたら「早くしなさい.wav」があがってたり”一日一回ミサカに「早くしなさい」と言われたいっ!”とかいうレスとかあったのでホイール押したら「早くしなさい.wav」が流れるように設定してやったぜ
確かにあの場面においては回りくどい言い回しをせず直球でずばっと切った台詞だから印象強いがここまで一部では人気なのか。


ダウンロード(c)


2009-04-01(Wed)
無題
png表示は一時諦め一色による透過法で透過して他を作ることに。
画像のアンチエイリアシングを削ってジャギーは目立つが綺麗にはなるようにしてとりあえず右クリックで終了できるようにする。
んでそのためにはメニューってのを作らないとだめなようで右クリックでポップアップするメニューだけってのは無理っぽい。
んで実装したら見事メニュー部分も見えてしまっていた。
VBの時はフレームを外すとメニューも一緒に消えてくれるのだがCは各自が独立しているらしい。
フレーム外してもメニューは残る不思議なアプリケーションがここに。
んならメニューのセット外してやればいんじゃね?と思い立つ。
つまり呼び出されたときだけでてくるみたいに。
//SetMenu(hWnd , hMenu);
これだけ。まさかのコメントアウト。
しかしいいのかよこれwwwエラー吐かない、ちゃんと動く。warningすらない。
メニュー構築しといてセットしないなんてなんかあれだな。
機材だけ揃えて何もしないくらいやらしいな。
まあプログラムとしてはちゃんと動いてるのでいいのだが何かしら問題にならないのかが不思議で仕方ない。
ググってもでてこなかったので仕方ない。Cの仕様がわからないことにはどうにも。
まあアプリケーションが終了した際メニューも終了するんだからその辺は問題なさそうだけど。


それにしてもCは融通が利かなさ過ぎる。
if(second<10){
   tess = '0';
}else{
   tess = '\0';
}
wsprintf(watchStr , "%d:%d%:%c%d" , hour,minute,tess,second);

こんな感じでゴリ押しフォーマットを行う際、char型のtessに0を入れるか空欄にするかっていうのだが
tessが空欄の場合それ以降が表示されずNG。なにこのゴリ押しクラッシャー
いいだろう、そっちがその気ならこっちだってこうだ

if(second<10){
   tess = '0';
   wsprintf(watchStr , "%d:%d%:%c%d" , hour,minute,tess,second);
   TextOut(hdc,0,236,watchStr,lstrlen(watchStr));
}else{
   tess = '\0';
   wsprintf(watchStr , "%d:%d%:%d" , hour,minute,second);
   TextOut(hdc,0,236,watchStr,lstrlen(watchStr));
}

思惑通りに動きました。コードとしてはまるで駄目だけど無性に勝った気になっている。
でもそうするならchar要らないよね

if(second<10){
   wsprintf(watchStr , "%d:%d%:0%d" , hour,minute,second);
   TextOut(hdc,0,236,watchStr,lstrlen(watchStr));
}else{
   wsprintf(watchStr , "%d:%d%:%d" , hour,minute,second);
   TextOut(hdc,0,236,watchStr,lstrlen(watchStr));
}

Cのフォーマットがわからないとかなりめんどくさいコードかかないといけなくなるからなんとか調べたいけどググったらCドライブのフォーマットがでてきてワロタ
検索でも融通が利かないよなC。
正解はstrftimeらしいけど一筋ならでは使えないのがC/C++って感じ。
引数が多くてそれになに入れたらいいのかわかんないとかザラすぎる。
ダウンロード(c)


<<< 6 7 8 9 10 11 12 13 14 15 16 >>>

Powered by NinjaBlog. Template by うさねこ.
忍者ブログ[PR]