W1032 スレッドローカル変数 '%s.%s' がエクスポートされていますが,パッケージの外からこの変数を使用することはできません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

Windows 上では threadvar 変数を DLL からエクスポートすることをサポートしていません。しかしパッケージの使用/未使用にかかわらずプロジェクトをコンパイルできなければなりません。そのため Delphi コンパイラは threadvar 変数の定義とそれに対する参照を構文上は許します。

この警告は,パッケージのインターフェースで threadvar 変数を含むユニットを使用していることを知らせるメッセージです。これ自体は不正ではありませんが,パッケージ外のユニットからその変数にアクセスすることはできません。

この変数にアクセスすると成功したかのように見えますが実際はそうではありません。

これに対する解決策は,threadvar 変数を実装部に移動して,間接的に変数の値を取得する関数を定義することです。