From: Shigeo Kobayashi Date: 2000-02-04T16:23:16+09:00 Subject: [ruby-dev:9091] Re: xmalloc() in Windows 小林です。 ----- Original Message ----- 送信者 : KIMURA Koichi 件名 : [ruby-dev:9087] Re: xmalloc() in Windows > > 序数をつける理由が無かったのでつけませんでした。exportされる関数 > の増減によって付けなおしが出るのも嫌でしたし。 > 付けなおしをしないで新しい序数を付ければ良いかと思います。 削除した場合は、いずれにせよ互換性はとれないのでしかたが ありません。 > 互換性を考えると付けた方が良い、というのは今一つピンと来ないので > すが、よろしければもう少し詳しく書いていただけますか? > 以下、ヘルプからの抜粋です。 ==================================================== .DEF ファイルを使う場合の利点と欠点 .DEF ファイルを使って関数をエクスポートすると、 エクスポート序数を制御できます。エクスポート関数を DLL に追加する場合、その関数には高い (その他の エクスポート関数よりも高い) 序数値を割り当てること ができます。こうすると、暗黙的なリンクを使用するア プリケーションを、新しい関数を含む新しいインポート ライブラリとリンクし直す必要はありません。これが非常 に重要になるのは、たとえば、多くのアプリケーションで 使うサード パーティの DLL を設計する場合です。 既存のアプリケーションは、新しい DLL を引き続き適切 に利用しながら、機能を追加することによって、DLL の機 能を向上できます。MFC DLL のビルドには、.DEF ファイルを 使います。 ==================================================== これは「序数を付け、かつ、値を変更しなければ DLL にAPI を追加しても、それを使用しているアプリは再リンクしなくて もよい。」と読めるのですが? 逆に、序数を付けないと DLL に API を(多分.DEFファイルの 途中に)追加したりすると、その DLL を使用しているアプリは 再リンクしないといけないのでは? たしか以前に、それで引っかかったような記憶があるのですが はっきりしません。時間があれば確かめてみますが、ヘルプ を読む限りは付けたほうが(そして、変更しない)よいような 気がします。 小林 茂雄 E-Mail: shigeo@tinyforest.gr.jp Home Page: http://www.tinyforest.gr.jp