
まず、『新規作成』を選びます。システムメニューの『ファイル (F)』に有ります。セットアップ直後のツールバーにも、該当機能のアイコンが有りますので、好きな方法で新規作成を行う様にして下さい。
新規作成のメニューには、数多くの項目が有りますが『ダイナミックリンクライブラリ』を選びます。
すると、BCB4 の場合、こんなソースが自動的に生成されます (BCB3 もほぼ同様)。BCB1 を使用されている場合は、少々異なりますので、補足説明も見て下さい (^^) 。
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
// 以下は、共有 RTL DLL(CP3245MT.DLL 等)を使わない DLL を作成する
// 場合のメモリ管理に関する注意です
//
// パラメータや戻り値として AnsiString(及び AnsiString を含む構造体/
// クラス)を扱う関数を DLL からエクスポートする場合、その DLL と、DLL
// を使うプロジェクトの両方に MEMMGR.LIB ライブラリを追加する必要が
// あります。
//
// DLL からエクスポートされた、TObject から派生されていないクラスに
// 対して new または delete を使う場合にも MEMMGR.LIB を追加しなけれ
// ばなりません。
//
// MEMMGR.LIB を追加することにより、DLL と DLL を参照する EXE が共
// 通のメモリマネージャを使うようになります。メモリマネージャは BORLND.DLL
// として提供されます。DLL またはアプリケーションとともに配布して
// ください。
//
// BORLNDMM.DLL が使われるのを避けるには、AnsiString 型の代わりに
// "char *" または ShortString 型を使って文字列のやり取りをおこなっ
// てください
//
// 作成する DLL が共有 RTL DLL を使う場合には、RTL の方で MEMMGR.LIB
// をライブラリとして追加するため DLL プロジェクトに明示的に追加す
// る必要はありません。
//
//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
//---------------------------------------------------------------------------
|
VCL を利用する dll を作成する場合は、このままでいいのですが、通常は、色々と都合が悪いので、以下のように修正します (BCB3 も同様)。BCB1 の場合も、ほぼ同じなのですが、USERES が記述されている行をいじらない様にして下さい。
//---------------------------------------------------------------------------
#include <windows.h>
#include <windowsx.h>
#include <condefs.h>
#pragma hdrstop
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
//---------------------------------------------------------------------------
|
【 step 2 へ進みます 】
【 step 0 へ戻ります 】
[[[ index ]]]
Copyright © SAITOH Kazuya, All Rights Reserved.
(!) Prohibit Reproduction.