2009-06-29 27 views
2

私はDelphi 7を使用してインプロセスのcomサーバーを作成しました。これはWindows XPとすべてのWindowsプレビスタで完全に機能しました。 Windows Vistaにアップグレードした後、次のエラーメッセージを生成するインターフェイスを1つだけ除いて、すべてのインターフェイスを使用できます。Delphi 2009 in-process com。エラーメッセージ - 'Os関数が失敗しました'

'Os関数が失敗しました'。

マイクロソフト開発者ガイドでは、抽象データモデルが64ビットおよび32ビットのアプリケーションプロセスの相互運用性を満たすように変更されたと述べています。彼らはヘルパー関数を導入し、新しいデータ型はCodeGear RAD Delphi 2009 Professionalのインストール後に見つけられないBaseTsd.hファイルで処理できます。マイクロソフトでは、64ビットと32ビットの両方をサポートする最新のオペレーティングシステムで新しいデータ型を処理するためにBaseTsd.tlbのインポートを推奨しました。もしDelphi 2009コンパイラが64ビットのアプリケーションを生成できるのであれば。私は少なくとも警告とエラーメッセージを得ることができます。 BaseTsd.tlbファイルを見つけて生成するのが難しくなっています。どこで私の.ridlでインポートすることができますか、助けてください。

回避策はありますか?

サム

+2

BaseTsd.hはWindows SDKにあり、Microsoftから無料でダウンロードできます。しかし、それはあなたに役立つだろうが、インターフェイスはバイナリ互換でなければならず、インプロセスサーバはまだVista上では32ビットなので、データ型の変更はそれに影響しないはずです。権限の問題は、Vistaの失敗の説明ではないでしょうか? – mghie

+0

mghie、あなたのコメントを回答として投稿してください。 –

答えて

0

あなたは、プロセスがブロックされてしまった場所を検出するために、Process Monitorを使用し、少なくとも何が起こっているかの手がかりを得ることができます。

関連する問題