予定は未定

記事中のプログラムコードについて、常識的な範囲で引用・プログラムへの利用ができます。利用に当たって許諾の必要はありません。

2025-01-01から1年間の記事一覧

WIC(Windows Image Component)でJpegの撮影日時を得る

WIC(Windows Image Component)でJpegの撮影日時を得ようとしていろいろ調べてみたが、ドキュメントがほとんど無いので残す。C++ Builder、DelphiではTWICImageを使えば良いように思うが、結論としてはTWICImageから日時を引き出せない。 このため、COMでゴリ…

ToInt系は使うな

C++ Builderで文字列から数値を得るための簡便な関数としてUnicodeString::ToInt()、StrToInt( int )等がある。 便利なのだが使い勝手の問題があって、結局そのままこれらの関数を呼び出しするようなコードを書くと、意図せぬ結果になる場合があるので備忘。…

Inno setupでsigntoolの設定備忘

昨日突然プログラムのデジタル署名が出来なくなり焦った。 サポートに頼ってなんとかなった。サポート様ありがとう。 どうもWindows Updateで電子証明書関連が壊れたか参照がおかしくなったかしたみたいだ。さて、次にやるとき忘れないようメモ。トークン更…

C++を使うならenumではなくenum classを使え

C++でC++11以降であれば、enumではなく、enum classを使う癖を付ける。 C++98やC++03など古い規格ではenum classは使えないが、enumの列挙子を記述する上では以降の注意点を守った方が良い。enumで宣言すると以下の通り。enSampleを付加しないで列挙子a1を使…

リンクURL中に@が有ったら詐欺メール

詐欺メール等から自己防衛するメモ 銀行などを装ったメールを確認するチェック事項リスト 1.メールの受信設定でHTMLで表示しない HTMLで表示させると自動で画像やリンクされたデータが自分のパソコンにダウンロードされる。 まず、これでそのアドレスが有効…

コンストラクター内でキャストするとき、および仮想関数の注意点

C++は難解なプログラム言語だと言われる。 自分は使える範囲しか使わないのし、長年の間少しずつ覚えてきたこともあり、そんなに難解なのかなと思うこともある。 まあ、テンプレートはさほど使わないし、ラムダ式とかその辺になると???となる。そんな中で、…

日本沈没とスロースリップ

Google ニュースで見出しに首をかしげたので読んでみた。diamond.jpまあ、100倍の速度でプレートが動けば沈み込みも派手になるかな・・・と思うけど、地震が多くなるだけで変わらないかもしれない。 地震の発生がプレート境界の歪みの釣り合いで発生すると仮…

Windowsの大型アップデート後などに表示されるあれを表示させない

Windowsの大型アップデート(1年ごとのやつとか)の後には、「PCのセットアップを完了しましょう」というメッセージと共に、毎回同じことをさせられる。 あれは意味が無いし、うっかり押し間違えると押し売りまがいに陥りかねない。 それをなくす方法のメモ。1…

C++BuilderでWin64モダンはどう判別するのか

Win64(モダン)はコンパイラーで言うとBCC64X。名称がいろいろ錯綜していて、12.3以降のオプション設定ではWin64モダン専用のオプションの断りにCOFFのみとかが出てきたりしてなんじゃそらになっている。 以前の記事でコンパイラー判別関連のマクロを整理した…

整数版Powについて(その2 オーバーフローチェック版)

以前、整数版のpowについて検討した。 この時はオーバーフローチェックを入れないケースのみでの検討で、主にループ回数による計算量の変化を検討した。今回は、オーバーフローチェックを入れた版を複数作成し、どの版が良いか検討する。 また、前回はループ…

BASE64デコードのC++コード

メールの解析などで使うことが多いBASE64のデコード。 ライブラリーとなっている場合も多いので、それを使えば用が足りる。車輪の再発明になるようだが、意外とコード例が転がっていないようだということと、注意点があるので記事にした。 今回のコードを作…

1.17 30年追悼式典におもう

阪神淡路大震災30年が経った。今日の式典は、知事の式辞、天皇陛下のお言葉の順で、その後粛々と進められた。 知事の式辞も陛下のお言葉も、犠牲者へ向いて発せられた。この式で発すべきことは慰霊のための言葉だ。 犠牲者に向けて30年たったこの時に、何を…

C++ Builderにおいてclang系の警告抑制方法

C++ Builderは、古い32ビットコンパイラーからclangベースのコンパイラーに移行していっている。 今後のコードメンテナンスも考えると、clang系でコンパイルする方が良いだろう。 ただ、マニュアルはclang系に対応しきっていないようで、今回の警告抑制もド…