二つのdll(hellocli.dllとhellocs.dll)については
hellocs.netmoduleをビルドし
hellocli.dllに静的リンクすれば
一つのdll(hellocli.dll)にまとめることができる
下記はMicrosoft Visual Studio Community 2019を使いました
merrybelle.sub.jp/bbs/bbs.phpの[100]を参考に
hellocs.dllとhellocli.dllをビルドする
hellocs.netmoduleのビルド
テキストエディタでhellocs.csprojファイルを
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>Module</OutputType>
と編集しリビルドすると
hellocs.netmoduleがビルドされる
hellocs.netmoduleが静的リンクされたhellocli.dllのビルド
ソリューションエクスプローラー
hellocli
参照
hellocs
を右クリックし削除する
hellocli.cppに
#using "hellocs.netmodule"
を追加する
プロジェクト
hellocliのプロパティ
C/C++
全般
追加の#usingディレクトリ
にhellocs.netmoduleのディレクトリを追加する
リンカー
全般
追加のライブラリディレクトリ
にhellocs.netmoduleのディレクトリを追加する
入力
追加の依存ファイル
に;hellocs.netmoduleを追加する
リビルドすると
hellocs.netmoduleが静的リンクされたhellocli.dllがビルドされる
Developer Command Prompt for VS 2019で
(例)D:\temp>csc -unsafe -target:module hellocs.cs
hellocli.cppに
#using "hellocs.netmodule"
を追加し
(例)D:\temp>cl /clr /LD hellocli.cpp hellocs.netmodule /link /LTCG
でも可
hellocs.dll, hellocli.dll, helloc.exeのビルド
Developer Command Prompt for VS 2019で
(例)D:\temp>csc -unsafe -target:library hellocs.cs
hellocli.cppに
#using "hellocs.dll"
を追加し
(例)D:\temp>cl /clr /LD hellocli.cpp
(例)D:\temp>cl helloc.cpp