2011-11-16 43 views
0

好了,所以我想用下面的参数的Process.Start System.NullReferenceException:对象引用未设置到对象

启动过程当我尝试启动它,虽然我得到一个System.nullreferenceexception的实例:未将对象引用设置为对象的实例

我在做什么错?

Dim exepath As String = Application.StartupPath + "\bin\ffmpeg.exe" 
    Dim sr As StreamReader 
    Dim cmd As String = " -i """ + input + """ -ar 22050 -y """ + output + """" 
    Dim ffmpegOutput As String 
    proc.StartInfo.FileName = exepath 
    proc.StartInfo.Arguments = cmd 
    proc.StartInfo.UseShellExecute = False 
    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden 
    proc.StartInfo.RedirectStandardError = True 'redirect ffmpegs output 
    'to our application 
    proc.StartInfo.RedirectStandardOutput = True 'we don’t really need this 
    proc.StartInfo.CreateNoWindow = True 
    proc.Start() 
+1

正如您所示,代码无法抛出'NullReferenceException'。代码中的更多内容阻止了它的工作。 –

回答

0

StreamReader未初始化:

Dim sr As StreamReader 

验证的代码中使用它之前furthur你正在对其进行初始化。

编辑:

既然你指定的例外是在proc.Start()抛出,我建议你宣布一个ProcessStartInfo,并与Process.Start()

例如使用它:

Dim l As New ProcessStartInfo 
l.FileName = exepath 
' ... 
Process.Start(l) 
+0

感谢您的信息:但错误发生在proc.start –

+0

@ImranAhmed:请参阅我的答案编辑。如果这没有帮助,那么请在您的问题中添加更多代码。 – MichaelS

+0

感谢您的帮助...我设法让它工作!从本质上讲,问题是我宣布我的流程是全局的,并且正在以流程而不是新流程的方式进行处理。 –

相关问题