DLL化の単位問題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: DLL化の単位問題

Re: DLL化の単位問題

#3

by みどり » 8年前

YuO様
感謝の言葉もないですね!
これほど完璧な解説!

Re: DLL化の単位問題

#2

by YuO » 8年前

決まった単位というのはないのですが,密接に関わるものは通常一つのDLLにまとめます。

わかりやすそうな方法としては,「これはどういうDLLですか」に対して一つの答えになる間は同じDLLに含める,というのがあるかと思います。
「○○と××するDLL」ならば,「○○するDLL」と「××するDLL」に分けた方が使いやすいですし,
「○○するDLL。ただし,△△.dllが必要」というような場合で,「△△.dll」の役割が「○○で使っていた中で他から使えそうなものを分離しただけ」ならまとめた方がよいでしょう。

まぁ,例外的に実装を選択するためだったり(利用するデータベースによって実装が変わる等),プラグインとしての実装だったりすると,公開関数が一つ,ということもあるとは思いますが。


なお,関数単位でのDLL化はお薦めしません。オーバーヘッドが大きすぎます (単に共通化するだけならLIBで十分)。
また,classは実際にはマングルされた名前のメンバ関数や(static)メンバ変数が,クラスとは無関係にエクスポートされます。
このため,classをDLLにしても特定のコンパイラからしか使えず,DLLには向きません (COM化する場合を除く)。

DLL化の単位問題

#1

by みどり » 8年前

OS MS windows10
Visual studio2015

これまで作ったC++関数やCLASSをDLL化したいですが、
当初からDLL化するつもりはなかったので、どうすれば良いのでしょうか。

例えば、関数単位でのDLL化と単一CLASS単位のDLL化
あるいは複数のCLASSをまとめてDLL化は可能でしょうか。
それからDLL化のための最適的単位があるでしょう。

ページトップ