2016-11-02 11 views
1

私はWindows 10の64ビットシステム上にあり、RegSvr32を使用してDLLを登録しました。 DLLが登録されていますが動作しません。

Set obj = CreateObject("myspecial.clsmycode")

は、私が試した後、次のメッセージが表示されます。私は次のことを行い、基本的なVBSファイルを実行しようとしたとき

 --------------------------- 
    RegSvr32 
    --------------------------- 
    DllRegisterServer in myspecial.dll succeeded. 
    --------------------------- 
    OK 
    ---------------------------

は私がます。RegSvr32後に次のメッセージを受け取りましたそのVBSコードを実行する:

 --------------------------- 
    Windows Script Host 
    --------------------------- 
    Script: C:\test.vbs 
    Line: 3 
    Char: 9 
    Error: ActiveX component can't create object: 'myspecial.clsmycode' 
    Code: 800A01AD 
    Source:  Microsoft VBScript runtime error 

    --------------------------- 
    OK 
    ---------------------------

誰かが私が間違ってやっていること、あるいはこれを働かせるために何をする必要があるかを知っていますか?

+1

が[すでにこれに答え](http://stackoverflow.com/a/35985827/692942)詳細の多くで前:

2)は、この方法を用いて、32ビットモードでスクリプトを実行しました。問題はClassic ASPの問題ですが、COM dllの登録時にも同じことが適用されます。 – Lankymart

+1

最も顕著な原因は、64ビットバージョンのスクリプトインタープリタを実行するが、COMサーバーは32ビットDLLであることです。または、それ以外の方法です。ベンダーbtwが提供するインストーラを常に使用し、適切なインストール手順がない場合は電話を使用してください。 –

+0

@HansPassantいつも「ベンダー」*であるとは限りませんが、COM dllはもはや存在しないか、場合によっては家で書かれています...私が提供したチェックリストに従うことによって、 *上記の答え(「WindowsにCOM DLLを登録する方法」と「COM DLLチェックリスト」の項を参照)*。 Windows OSの32/64ビット間のアーキテクチャの違いを理解することは、すべて下にあります。 – Lankymart

答えて

1

ソリューション:

私の32ビットのDLLは確かしかし、私は64ビットモードでスクリプトを実行しようとしていた、私の64ビット版のWindows 10システムに登録されました。また、IIS上のASP内でこのDLLを使用しようとしていたため、32ビットアプリケーションが有効になっていないため動作しませんでした。

問題は次のようにして解決された:

1)は、IISの設定内のアプリケーションプール内の32ビット・アプリケーションを可能にしました。

A: How do I run a VBScript in 32-bit mode on a 64-bit machine?

+0

あなたはセクションを見逃していました。私は「64ビットOS上でシステムプログラムが「*」にありますか? '%systemroot%\ SysWOW64'から' cscript.exe'を実行して、32ビットサブシステムで実行することがわかっているでしょう。少なくとも、あなたは私が推測する解決策を見つけました。また、Webアプリケーションへの参照を作成しないので、なぜIISアプリケーションプールの設定を変更する必要がありましたか?これは、純粋にクラシックASPのようなCOMを使ってWebアプリケーションに関係します。 – Lankymart

+0

[OK]を、それを説明する答えのASPのコメントを見つけました。 – Lankymart

関連する問題