Excel用のDelphiプラグインで作業しています。また、AddIn Express COM Library(優れたBTW)も使用します。コードはうまくいきました。新しいフォームを呼び出す別のリボンメニューオプションを追加しました。このフォームにはRESTコントロール(クライアント、レスポンスなど)があります。コンポーネントは互いに結びついていますが、URLに関する情報はありません。これは実行時に設定されます。私は私のプロジェクトをコンパイルする。Excelで突然表示されるDelphi - OSローダーロックの問題
- スタンドアロン(デバッガの外)で実行すると正常に動作します。 URLリソースを設定し、RESTサービスを呼び出し、データをメモに表示します。私は、Delphiの中からそれを実行した場合
- は、私はすぐにアセンブリコードにダンプを取得し、私はOSローダーロックの内部イベントログ
」しようとすると、管理の実行中にエラーメッセージが表示されます。そのアプリケーションがハングアップすることがありますやって以来のDllMainまたはイメージイニシエーション関数内のマネージコードを実行しようとしないでください。」
、特に(これは正常に動作するために使用されるが、私はちょうど、フォームを追加しました親フォームを追加し、RESTコンポーネント、RestAdapter、TDatasource、およびClientDataSetを追加し、継承しました。グーグルでは、これはデバッガの問題であり、少なくともVisual StudioではこれがExceptions/Ignore Loader Lockでオフにできることがわかりました。私はDelphi(Seattle)デバッガ内で類似の機能を見つけることができません。
問題なくアドインエクスプレスを実行しました。私のプラグインは問題なく実行されていましたが、問題なくスタンドアロンのRESTデモアプリケーションを実行しました。その組み合わせがこの問題を引き起こす可能性はありますか?デバッガのローダロックのチェックを無効にする方法はありますか?それが役に立った場合、イベントログの "OS Loader Lock"メッセージの前の最後のメッセージに、そのモジュール:CSCAPI.dllがロードされたことが示されます。 RESTコンポーネントを動的に作成する必要があるかどうかは疑問です。私の疑念は、これらのコンポーネントは、アプリケーション(別名Excelのプラグイン)が起動したときに作成され、何かがデバッガを動かすように初期化されているということです...
@ David - 考えてくれてありがとうございますが、私はINITIALIZATIONルーチンに注意するようにしました。私は2つの.pasファイルを持っていました。私もFINALIZATIONルーチンを持っていたので、1つは宣言されました。もう1つは信じられないほど些細でした。それにかかわらず、私はそれをコメントアウトしました。グローバル検索を行うと、他の初期化が表示されません。問題は依然として存在します。この問題は、RESTコンポーネントを追加したときにのみ表示されたので、次のステップはおそらくそれらを削除し、エラーが消えてしまうかどうかを確認することです。 – user1009073