2

MS Server 2003 64 ビットの Microsoft Visual C# 2008 Express Edition で Windows Media Encoder オブジェクトを作成 (および使用) しました。これはうまくいきました。

ただし、MS Server 2003 64 ビットで Microsoft Visual Web Developer 2008 を使用して同等の Windows Media Encoder オブジェクトを作成しようとすると、次の例外がスローされました。

「CLSID {632B606A-BBC6-11D2-A329-006097C4E476} のコンポーネントの COM クラス ファクトリを取得できませんでした。次のエラーが原因です: 80040154。」

どちらも同じ WMEncEng.dll ファイルへの参照を持っているため、コンポーネントが登録されていない可能性があります。Microsoft Visual Web Developer 2008 コードも XP 32 ビットで正常に動作しました。

権限に問題がある可能性はありますか? とにかく、この問題が発生する理由と、さらに重要なことに、それを解決する方法を知っている人はいますか?

ありがとうございました。

MS Server 2003 64 ビットの 2 つのコード スニペットを次に示します。

Microsoft Visual Web Developer 2008 (動作しませんでした):

using System;
using WMEncoderLib;

namespace TestWMEnc
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                WMEncoder encoder = new WMEncoder(); //exception thrown
                // ...

            }
            catch (Exception err)
            {
                string exception = err.Message;
            }

        }
    }
}

Microsoft Visual C# 2008 Express Edition (正常に動作):

using System;
using System.Windows.Forms;
using WMEncoderLib;

namespace testWMEncoder
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                WMEncoder encoder = new WMEncoder();
                // ...

            }
            catch (Exception err)
            {
                string exception = err.Message;
            }

        }
    }
}
4

1 に答える 1

0

「WMEncoder エンコーダー = new WMEncoder();」でこのエラーが発生します。x86 ターゲット用にコンパイルされたコードで、x64 システムで実行されます。可能であれば、VWD のターゲット システムを「任意の CPU」に設定してみてください。

于 2010-06-14T19:45:58.373 に答える