プログラマのつれづれなるままにプログラマのつれづれなるままに音宮志久が思ったことなどをネタにします。プログラムネタ・数学ネタがメインです。レスポンスいろいろとレスポンスコメントを残す別件が忙しくなってきた影響で時間が余り作れなくなってきています。その割にはこんな記事を書いているのが微妙といえば微妙ですが・・・。一応アクセスログについては確認しているのでその中で気になったことを書いてみたいと思います。Win64ではthiscallの扱いはどうなるのか?この記事の続きのような物です。Win64での呼び出しは_cdecl=_stdcall(=_fastcall)であることは記事中にもあることですが、では_thiscallの扱いはどうなるのか?を調べてみました。対象はやはりVisualStudio2005でアセンブラコードを含めてビルドさせて確認しました。なったかというとrcxレジスタにthisポインタ、整数第一引数がrdxレジスタ、以下・・・となりました。y){・・・}};のように変換している、ということらしいです。ちなみに、Win32上で無理にクラス呼び出しに対して_cdeclや_stdcallをつけるとその通り(第一引数をthisポインタにするよう)に呼び出し形式が変わります。この辺を気にするのはプログラム解析を行うような人くらいだと思いますが。最適化とか関係ないですし。コードサイズが減った理由は不明だが別件で作っているプログラムのサイズも100kB分下がっていたのでYUV=>RGB変換ルーチンを書き直していた段階で何かの最適化がかかるようになってルーチンが外されたのでは?と推測しています。Libraryには一応サンプルコードがついていますので、使用方法はそちらを参考にしてください。C++&DirectShowで動画の再生をやろうとした人なら理解できるコードのはずなのですが・・・。krmovieとペアにして使う場合はさらに簡単のはずです。確かにLoadLibrary経由での使い方は示していませんが、関数定義はちゃんと付属のテキストにありますのでそれを定義してGetProcAddressで取得すればほぼ同じ使い方になりますので。結局電池が急激に減る減少のリセットは再起動しかないのかな?これもよくわからないことの一つです。acroのこの時点で最新の状態であっても再起動でなぜかアプリ一つ分だけ変な場所に移動するようです。どちらの件についてもどうしてこうなっているのかわからないので愚痴っぽく書いているだけです。一日で電池を使い切るような使い方をしている人にはあまり意味のない現象のような気もしますが。コメントをキャンセルメールアドレスが公開されることはありません。志久プログラムネタや思いついたり世間で話題になっている数学ネタを解説したりしています。プログラマとしては今年度(つまり2020年3月)までの復帰となるか、完全復帰となるか、別の仕事に戻るかは運と実力次第。ちなみに教育系のプログラムでもOKです。アクセスカウンタアクセス数:スポンサーリンク。