C++ などから呼べるDLL をC# で作れるDllExport というツールがあります。 この記事は、そのDLL をVB6 やVBA から呼ぶという、極めてマイナーな方法を行う際のマーシャリング方法について記述した個人的な備忘録です。 VB6 とは 1990年代の使われていた言語で、現在はその派生形がOffice 製品のVBA で生き残っている。 特に、最終バージョンのVB6.0 では、ActiveX コンポーネントを組み合わせることでC++ などと比較して高い生産性を確保でき、開発者が確保しやすいことから日本ではVB6.0 を使った業務システムなどが大量に作られた。 継承やマルチスレッド等がないものの、クラスを使ったカプセル化などは行えるので、一応オブジェクト指向っぽい開発も行える。 Visual Basic DllExport1 とは C# でC++ などで作られたネイティブDLL