VCL データ モジュールを含む dll を作成しようとしています - さまざまなアプリケーションがすべて同じ dll をロードし、同じデータベース コードを使用できるという考えです。
データ モジュール自体は、アプリケーションの一部として問題なくテストされています。フォームを dll プロジェクトにコピーしました。
したがって、dll エントリ ポイント メソッドでは、データ モジュールを初期化する必要があります。
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
//if I don't call this, I get an exception on initializing the data module
CoInitialize(NULL);
//initialize a standard VCL form; seems to works fine
//I'm not using Application->CreateForm as I don't want the form to appear straight away
if(!MyForm) MyForm = new TMyForm(Application);
//this doesn't work - the thread seems to hang in the TDataModule base constructor?
//I've also tried Application->CreateForm; same result
if(!MyDataModule) MyDataModule = new TMyDataModule(Application);
}
フォームを作成する前に Application->Initialize を呼び出す必要がある方法についても見ましたが、これは何の違いもないようです。
何か案は?
ありがとう