我试图在我的C# .NET网站上使用C#,但我被困住了。
我正在使用:.NET Framework3.5/2008Express Edition /(还有什么您需要知道的吗?)
我做的第一件事就是在代码项目上从C# MP3压缩机获取代码。有一件事我注意到,这个项目/职位是从2004年1月(所以,它是旧的)
我将文件夹"yeti.mmedia“和"yeti.mp3”放在"App_Code“目录中,并删除了每个目录中的"Bin”和"obj“目录。然后我试着建造这个项目。当我遇到错误时,我最终将下列文件排除在项目之外:
在我看来,这些都是与Windows相关的代码文件(我不需要这样做)。
我还将文件"lame_enc.dll“放在Bin目录中。
我根据上面链接的页面上的示例创建了一个测试页面:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using WaveLib;
using Yeti.MMedia;
using Yeti.MMedia.Mp3;
public partial class Documents : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
WaveStream InStr = new WaveStream(Server.MapPath(@"Temp/SomeFile.wav"));
try {
Mp3Writer writer = new Mp3Writer(new FileStream(Server.MapPath(@"Temp/SomeFile.mp3"), FileMode.Create), InStr.Format);
try {
byte[] buff = new byte[writer.OptimalBufferSize];
int read = 0;
while ((read = InStr.Read(buff, 0, buff.Length)) > 0) {
writer.Write(buff, 0, read);
}
}
finally {
writer.Close();
}
}
finally {
InStr.Close();
}
}
}所以,我加载这个页面,得到的错误是:
无法加载DLL 'Lame_enc.dll':找不到指定的模块。(HRESULT例外: 0x8007007E)
(我不能在我的项目中添加DLL作为引用,因为它说"...This不是COM组件“)。我还尝试获得最新的、最伟大的(lame3.98.4) dll,并遇到了同样的问题。因此,我假设在网站中使用这些代码有一些不同的地方,而不是其他类型的项目。但我不知道是什么。
发布于 2011-06-07 21:07:08
我的猜测是,由于没有使用跛脚,你必须安装在有关的盒子。之后,您应该能够成功地使用代码项目代码。如果这样做不起作用,那么Lame_Enc.dll似乎是一个本机组件,您必须使用PInvoke方法。
https://stackoverflow.com/questions/6271518
复制相似问题