DLLファイルの役割と作り方〜中身・作り方・使い方を、言語をまたいで確かめた〜
DLLとは何か、なぜDLLにするのか、何の言語で作れるのか。小さなDLLを実際に作って確かめました。★C++とRustは1つのDLLに同居できます。ただし「公開する関数を明示しない」ときの壊れ方がmacOSとWindowsで正反対でした(macOSは1,688個も漏れる/Windowsは5個しか出ず使えない)。理由は逆なのに、対処は同じです。
プログラミングや3DCGで何か作りたいと思っているエンジニアがいます
DLLとは何か、なぜDLLにするのか、何の言語で作れるのか。小さなDLLを実際に作って確かめました。★C++とRustは1つのDLLに同居できます。ただし「公開する関数を明示しない」ときの壊れ方がmacOSとWindowsで正反対でした(macOSは1,688個も漏れる/Windowsは5個しか出ず使えない)。理由は逆なのに、対処は同じです。
拡張子を並べても違いは分かりません。同じライブラリを静的・動的の両方で作り、macOSとWindowsで実測しました。軸は「いつ名前が解決されるか」の1つだけ。★静的リンクは関数ではなくオブジェクトファイル単位で取り込むため、呼んでいない関数が16KiB付いてきます。★.dylibを.soに改名しても読めるので、決めているのは拡張子ではなく中身の形式でした。
「Vibe Coding」というAIに自然言語で指示してコードを書かせる開発スタイルを実際に試してみました。メリットも多い一方、現実的な限界も感じた体験をエンジニア目線で正直にレポートします。