使用VS2010构建的应用程序在VS-Express2008-C中不起作用

时间:2010-05-02 18:04:45

标签: c visual-studio-2008 winapi visual-studio-2010 visual-studio-express

我在一个解决方案中编写了一个由两个项目组成的应用程序,每个项目只包含一个.c源文件。我使用的是Visual Studio 2010 Ultimate,但由于大学仅支持2008年,我决定创建一个空白解决方案并将源文件复制到新文件中。

在VS2008 express中创建新解决方案后,创建两个项目并重新创建源文件并将其添加到我运行应用程序的项目中。

由于某种原因,只有应用程序的一部分不起作用,我使用CreateProcess()从Project 2执行“Project1.exe”。

这在vs2010下运行正常但由于某些原因它在VS2008 express下无效,GetLastError()显示错误2:找不到文件。

这是在两个IDE中显示相同代码的图像:

Error Image

我没有使用任何特殊的东西,我确保两个解决方案/项目都使用.Net 3.5。

我无法理解为什么它适用于一个IDE而不适用于另一个IDE。

有什么建议吗?谢谢!

修改

.exe的屏幕截图

.exe location

1 个答案:

答案 0 :(得分:2)

您没有将.exe的完整路径名传递给CreateProcess()。这通常只有在你运气好的情况下才有效。 .exe文件必须位于同一目录中,并且必须将工作目录设置为该目录。首先验证.exes是否是您希望的位置。

通过生成第二个.exe的完整路径来避免对工作目录的依赖。使用GetModuleFileName(),传递NULL,以获取第一个.exe

的完整路径