☆無効なスレッドモデル?
Delphi7から移植したアプリケーションで、DBExpressでFirebird1.03のデータベースをオープンしようとすると、
「無効なスレッドモデル(STAThreadAttribute が必要です)」
というエラーメッセージが表示されました。
いろいろ調べてみますと、HELPの「VCL アプリケーションを Delphi 8 for .NET に移植する際の言語の問題」に「スレッドモデルの変更」という項目があり、そこにdprファイルのbeginの直前に[STAThreadAttribute] 属性を追加するだけですと記述がありました。こんな文法あったかな?と思いながらも以下のようにすれば、問題なく実行できました。
ちなみにVCLフォームアプリケーションを新規作成しますと、次のようになっています。
プログラム/アセンブリ情報というよくわからない記述もありますし・・・。
「無効なスレッドモデル(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.
プログラム/アセンブリ情報というよくわからない記述もありますし・・・。
| 固定リンク