« ☆デスクトップのパス | トップページ | ★JPEGユニットがない。 »

☆無効なスレッドモデル?

Delphi7から移植したアプリケーションで、DBExpressでFirebird1.03のデータベースをオープンしようとすると、

「無効なスレッドモデル(STAThreadAttribute が必要です)」

というエラーメッセージが表示されました。
いろいろ調べてみますと、HELPの「VCL アプリケーションを Delphi 8 for .NET に移植する際の言語の問題」に「スレッドモデルの変更」という項目があり、そこにdprファイルのbeginの直前に[STAThreadAttribute] 属性を追加するだけですと記述がありました。こんな文法あったかな?と思いながらも以下のようにすれば、問題なく実行できました。

(略)
uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1},
 DataModuleMain in 'DataModuleMain.pas' {DataModule1: TDataModule};

{$R *.res}
[STAThreadAttribute]  //この行!!
begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TDataModule1, DataModule1);
 Application.Run;
end.

ちなみにVCLフォームアプリケーションを新規作成しますと、次のようになっています。
[STAThread] // こんな属性が指定されています。
begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

プログラム/アセンブリ情報というよくわからない記述もありますし・・・。

|

« ☆デスクトップのパス | トップページ | ★JPEGユニットがない。 »