【C#】構造体配列のポインタを持つ構造体のマーシャリング

C#の相互運用(C#からネイティブDLLの呼び出しの場合)で構造体の中に構造体配列のポインタを持つ関数のマーシャリングのやり方です。 ネイティブDLL側の宣言 C#側の実装方法 ネイティブDLL側の宣言 ネイティブのDLL側の宣言は以下のようになっているとしま…

dllexport と__stdcallを同時に宣言すると関数名が変わる

C++

VsiaulStudioのC++のプロジェクトで、DLLを作成し、関数を外部公開するため、 extern "C" と dllexport を指定したところ予期しない名前がついていて関数呼び出しが失敗してしまいました。 以下のように、外部公開される名前の先頭にアンダースコア、末尾に…

Excelで増殖したセルのスタイル(書式)を一括で削除する

Excelでファイルサイズが異様に大きくなっている時に、セルのスタイルが異常に増殖している事があります。 原因は不明ですが、どうやら"シートを複製する"、"セルをコピペする"操作で増殖するみたいです。 以下画像の赤枠の書式欄ですが、見えている部分の様…

VisualStudioのエラーリンクの検索エンジンをGoogleに変更する

VisualStudioでコードを書いている時にコンパイルエラーが発生した際に、エラーリンク(以下画像の赤枠)をクリックすると、Bingでエラーが検索されます。 このBing検索、全く役に立たないので検索エンジンをGooleに変更します。 前提条件 以下、唯一の条件で…

C#の自動で作成されたイベントハンドラの命名規則

C#

イベントハンドラを自動生成した時に、以下のメッセージで注意を受ける事があります。 IDE1006 C# 名前指定の規則違反: 最初の単語 '${メソッド名}' は、小文字で始まらなければなりません IDEが自動で作ったコードをこちらに修正しろというのもいちょっとよ…

拡張メソッドを使ってObjectクラスを拡張しstringプロパティを一括でEmptyに初期化する。

C#

以前に、ブログで書いた「C#でstringを一括でEmptyに初期化する」という記事でstringのプロパティに対して一括でstring.Emptyを設定する方法を紹介しましたが、今回は拡張メソッドを使用してObjectoクラスを拡張してstringクラスへ初期値として任意の値を設…

ステンレス製アイス・キューブの開封&レビュー

氷と違って薄まらずに飲み物を冷やしてくれるアイス・キューブを買ったので開封&レビューしたいと思います。 今回購入したのはコレ。ステンレス製のキューブが8個入ったMiriyonのアイス・キューブです。 ステンレス氷 アイスキューブ 溶けない氷 ウイスキ…

コカ・コーラクリアを飲んだ感想

自分、コーラは結構好きなのでたまに飲んでいるため、透明なコカ・コーラクリアは珍しいなと思い買ってみました。 早速のんで見たいと思います。 「いただきま~す。」 「ゴクッ…」 「うぇっー?!何だこりゃ!!?」 が、感想でした。 はい、とってもマズい…

XとYのグリッド構造を全て列挙する foreach 操作を C++ で実装する

C++

画像処理や、ゲーム作成をしていると、結構な頻度でXとYで表される2次元のグリッドを扱う事があると思います。その時に、全グリッドを対象にした処理を書く際に以下のようなループ処理を結構な頻度で書く事になると思います。 // 頻繁に出てくるループ処理 f…

文書で句点にピリオドを使う事がJISの規格という都市伝説

タイトルの通りですが、 Q:技術文書の句点に半角ピリオドを使うのがJISで規格化されているというのは本当か? A:JISに規定は存在しない。 何故こんなことが気になったのか? 自分自身この業界に入って文章に「。」の代わりにピリオド「.」を使う人を結構見…

初心者に「非」おすすめなプログラミング言語

よくネットのフォーラムで、「最初に学ぶべきプログラミング言語は何か?」という話題が投稿され、その度に議論が起きています。しかしその逆に「初心者が最初に学ぶべき"ではない"言語」は一体何か少し考えてみました。ここでは、今まで一度もプログラミン…

Terra Tech ゲームレビューと最序盤プレイレポ

Terra Tech という Steamでアーリーアクセスのゲーム紹介をしたいと思います。 今のところ45時間ほどプレイして序盤を終えた感じです。けっこう面白かったです。 ゲームの特徴 このゲームですが、ある惑星で資源集めをしつつ、四角いブロックを組み合わせて…