2011-12-13 157 views
3

我正在使用.NET 4.0,C#编码的64位应用程序。64位应用程序开始32位进程

在这种应用中,在某些时候,我需要使用下面的代码启动另一个EXE文件:

l_process.StartInfo.FileName = _sFullFilePath; 
l_process.StartInfo.Verb = "Open"; 
l_process.StartInfo.CreateNoWindow = true; 
l_process.StartInfo.Arguments = l_sParams; 

l_process.Start(); 

现在,这种外部应用程序为32位环境(86),我得到下编译出现以下错误:

**The specified executable is not valid for this OS platform** 

甚至有可能这样做吗?如果是的话,我怎样才能设法从我的这个应用程序启动而不会有麻烦?

+0

我开始这样的过程所有的时间 - 因此,它的工作原理。检查你的设置 - 可以是32位应用程序不是真正的32位(从54位开始,连接到32位库)。 – TomTom

+2

外部应用程序甚至可以在此环境中执行吗? – Oded

+1

@TomTom - 什么是54位应用程序? –

回答

2

通常,在64位机器上运行32位程序不需要额外的工作。

  1. 尝试单独运行32位程序。
  2. 阅读:http://www.techsupportalert.com/content/how-windows7-vista64-support-32bit-applications.htm
+0

1.单独运行正在运行! 2.我的代码中需要做些什么来告诉我的应用程序它是一个32位的exe文件! –

+0

应该不需要更改代码。如果有任何DLL丢失或32位应用程序,请使用“depends”进行检查。正试图链接一个64位的DLL,也是64位应用程序所需要的。 – Azodious

相关问题