結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

C言語

Windowsで超シンプルなC/C++のDLL作成方法、C/C++からDLLの関数を呼ぶ方法、JavaからDLLの関数を呼ぶ方法、DLLに含まれる関数の調べ方

今更な内容の個人的メモ。極力手短な手順で。環境はWindows 10(64-bit)です。 例としてVisual Studio Community 2019を使って、2つの整数を受け取り、その和を返す関数を作ります。 JavaはEclipse(Pleiades)を使ってます。 C/C++のDLL作成方法 1.[ファイル]→…

atan2関数(アークタンジェント)の戻り値早見図

atan2はベクトル(x,y)とx軸のなす角度を返すものです。結果としてはラジアンで-π~πが返されます。 ここではざっくりこれを0°~360°に変換する方法をご紹介します。ラジアンから度への変換ですが、青字の正の部分は180/πを掛けるだけで終わりです。 例 3π/4 …

C# + Ironyで構文解析を行う (電卓を作ってみます)

皆様新年明けましておめでとうございます。 相変わらずの更新ペースですが、本年もよろしくお願い致します。 挨拶はこの辺にしてさっそく本題。 なぜ構文解析をするのか? 事の発端ですが、うちにはC/C++で書かれたソースコードが山ほどあり、構文解析してヘ…

AutoIt+OpenCVでデスクトップから任意の画像を曖昧検索(テンプレートマッチング)する

AutoItで画像の曖昧検索がしたい UWSCにはchkimgという画像検索関数が標準で用意されていました。また有志の方がchkimgxという画像の曖昧検索を行う外部ライブラリを作成されていたようですが、アップローダーなどでのみ配布されていたようで現在では入手が…

AutoItでDLLを呼び出す方法

つい先日からUWSCでスマホゲーWindows上の作業を自動化していたのですが、 UWSCは最近公式サイトがリンク切れになったり、32-bitのバイナリしかなかったり、VMのゲストOSでの動作がうまくいかなかったりと、 将来的にいろいろ不安なので、AutoItに乗り換えら…

自作フリーソフト公開スペース

適宜更新します。あんまり期待しないでください。 Tendon Skill Builder ドラクエXのスキルの自動スキル割り振りアプリです。 各職業の持っているスキルポイントと,割り当てたいスキルに数値を入力するだけで 自動的にどの職業がどのスキルに何ポイント割り…

Valgrindの結果の見方、日本語訳、など役に立つことまとめ

勉強がてらメモ。 適宜更新していこう。うん。 Valgrindって? デバッグやプロファイラなどの複数のツールから構成されるツール群の総称。 メモリリークチェックツールとして有名だと思いますが、 それはValgrindツール群の中のMemcheckというツールによる機…

Linuxでgccを使用して共有ライブラリを作成・使用する方法

C/C++でのお話です。 忘れがちなのでまとめておきます。 備忘録 共有ライブラリ作成時 VC++ではexportする関数毎に__declspec(dllexport)が必要になるが、gccの場合はstaticが付与されていなければ自動的に公開になるため不要 共有ライブラリ(拡張子so)のフ…

プログラミング言語(主にC/C++)の文法でなかなか覚えにくいもの備忘録

メンバ関数ポインタの配列とコール方法 以下のようなクラスとメンバ関数があったとします。 class CTest { public: int print ( int nCount ){ ... } int print2( int nCount ){ ... } }; メンバ関数ポインタの配列定義、関数の代入は以下のようになります。…

可変引数を利用してVSのデバッグ出力ウィンドウやウィンドウボックス等でデバッグメッセージを出す方法

皆さんC/C++でデバッグメッセージを出したいときはどうしているでしょうか?コンソールプログラムの場合はprintfやcoutで済ましている人もいるのではないでしょうか。ではコンソールプログラムからWin32などのコンソールがないプログラムにした場合どうしま…

ファイル内容を確実に出力するための方法についてのお勉強

お勉強シリーズ第一弾ッ! (1回しかやらなさそう臭がハンパないですね) 日々勉強した結果を、複数回に分けて記載・修正して本エントリを完成させます。(2回更新しました)※ご注意※ 本エントリは未完成です。内容に誤りがある可能性がありますのでご注意くだ…

if文を使わずに、配列内の値が0以外の要素だけ、指定された値に上書きする方法

昔からある、ビット演算の魔術と呼ばれるような計算についでです。 有識者にとっては常識だと思うのですが、慣れていない自分の備忘録として残しておきます。タイトルのような処理を素直に書く場合は、通常以下のようにif文を使って条件を判定します。 // 要…

World of Warcraft(WoW)のエミュレーターサーバー(エミュ鯖)Arcemuを自宅サーバーにセットアップする方法

World of Wrcraftとは? World of Warcraftは米Blizzard Entertainment社が開発し運営しているオンラインゲーム(MMORPG)です。 2010年時点で登録ユーザ数が1000万人を突破しており、「最多登録者数のMMORPG」として ギネスブックに登録されています。「WoW」…

VisualStudioでC/C++ビルド時,stdio.hやkernel32.libなど基本的なモジュールが見つからないときの対処法

※2016/12/16全面刷新 ※私の認識に誤りがあり,どうやらVisualStudioのincludeやlibのパス設定方法がまずかったようです。 ※またパス展開用のマクロ名が,古いVisualStudioのもの(つまり移行時に発生しやすい?)だった場合も ※問題が起きる気がします。。。 …

小数の計算にはfloat型よりもdouble型を使おう(C/C++)

ゲームプログラミングでのお話です。ゲームプログラミングでは、通常キャラクターの速度や座標を小数で保持します。DirectXでは、これらの値を保持するためのベクトルクラスが定義されています。 D3DXVECTOR3などのクラスです。このクラスはx,y,zのメンバ変…

実践的な衝突判定(AABB編)

自作ゲームに組み込んでいる衝突判定について、整理も兼ねてご紹介します。 説明を簡単にするために2D空間で説明します。 バウンディングボリューム バウンディングボリュームについては、容易に判定可能で実用的ということで 各軸に平行な四角形(以下の図の…

Cで文字列両端にあるダブルクォテーションを除去する方法

シンプルに以下の方法で実現できるんです。 const char target[] = "\"beer\"" char dest[10]; strcpy( dest, strtok( target, "\"" ) ); targetとdestの出力結果です。 target="beer" dest=beer 動作原理は、デリミタが終端文字('\0')になり さらにstrtokで…

プライバシーポリシー お問い合わせ