我在 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 位的两个代码片段:
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;
}
}
}
}