Automation Error -2005532109 を解決するには?

解決


やかずき  2010-07-21 19:01:12  No: 102449  IP: [192.*.*.*]

初めて質問させていただきます。
DirectXは全くの初心者です。

環境:  VB6、DirectX7、Windows7

今までXPで動作していたプログラムを、Windows7で動作させると
Automation Error  −2005532109 (88760233)が発生します。

DirectX7のCreateSurface()で発生しますので、DirectX7の実行環境に問題があるのだろうと思いますが分かりません。
dx7vb.dllの他に必要なものがあるのでしょうか?

なお、別のWindows7のPCでは、このエラーは発生せずに正常に動作します。
よろしくお願いします。

編集 削除
魔界の仮面弁士  2010-07-21 20:40:34  No: 102450  IP: [192.*.*.*]

> 環境:  VB6、DirectX7、Windows7
DirectX8 では無いのですね?

> DirectXは全くの初心者です。
私も似たようなものです。自分ではほとんど使わないですし。
という事で、以下は回答になっていない可能性も高いのですが:


> dx7vb.dllの他に必要なものがあるのでしょうか?
regsvr32 を用いて、レジストリに登録する必要があるはずです。
コマンドプロンプトを「管理者として実行」しておくことを忘れずに。


> Automation Error  −2005532109 (88760233)が発生します。
エラーコードからすると、DDERR_NODIRECTDRAWHW ですね。

SDK で DirectDraw7.CreateSurface メソッドの解説を見ると、
|
|  DDERR_NODIRECTDRAWHW
|    ハードウェア専用 DirectDraw object オブジェクトを作成できない。
|    ドライバはハードウェアをサポートしない。
|
とありますので、DDSURFACEDESC2 で指定されたサーフェス パラメータに
ハードウェア側が対応していないのかもしれません。外しているかも知れませんが。


> なお、別のWindows7のPCでは、このエラーは発生せずに正常に動作します。
もしもその PC が、エラーの出る機種と同一機種なのであれば、今回の問題は
ハードウェアではなく、ソフトウェア環境側に原因があるという事になりますね。

編集 削除
やかずき  2010-07-22 10:39:37  No: 102451  IP: [192.*.*.*]

魔界の仮面弁士さんアドバイスいただきありがとうございます。

regsvr32での登録は行っております。
ハードウェア側が対応していないということも考えにくいのですが、
ディスプレイアダプタのドライバの問題ということでしょうか。
その方面には暗いためどうすればよいのか分かりません。

問題のPCは先月から発売になりましたDellのCorei3ノートPCで、XPで購入し、このVB6のプログラムも正常に動作しました。
しかしながら、USBデータ受信が停滞する問題が発生しました。
この原因は不明なのですが、Windows7では問題ないことが確認できたため、Windows7へ移行することにしました。

XPから7への入替えは製品付属のReinstallation DVDを使用しました。
dx7vb.dllはXP版に存在していたものを使用しています。
なお、正常に動作しているのは、異なる2機種のWindows7です。

ご教授よろしくお願いいたします。

編集 削除
やかずき  2010-07-23 13:44:38  No: 102452  IP: [192.*.*.*]

本件は解決いたしました。

Display Driverのインストール(再?)を行ったところ、エラーは発生せずに正常に動作するようになりました。

魔界の仮面弁士さん  ありがとうございました。

編集 削除