【发布时间】:2010-05-02 18:04:45
【问题描述】:
我在一个解决方案中编写了一个包含两个项目的应用程序,每个项目仅包含 1 个 .c 源文件。我使用的是 Visual Studio 2010 Ultimate,但由于大学只支持 2008,我决定创建一个空白解决方案并将源文件复制到新的解决方案中。
在 VS2008 express 中创建新解决方案后,创建两个项目并重新创建源文件并将其添加到我运行应用程序的项目中。
由于某些原因,只有一部分应用程序无法运行,我使用 CreateProcess() 从 Project 2 中执行“Project1.exe”。
这在 vs2010 下运行良好,但由于某种原因它在 VS2008 express 下无法运行,GetLastError() 显示错误 2:未找到文件。
这是在两个 IDE 中显示相同代码的图像:
我没有使用任何特殊的东西,并且我确保两个解决方案/项目都使用 .Net 3.5。
我不明白为什么它适用于一个 IDE 而不是另一个。
有什么建议吗?谢谢!
编辑:
.exe 的屏幕截图
【问题讨论】:
-
如果错误消息是“找不到文件”,您是否确定您尝试启动的 exe 实际上位于您假设的位置?从屏幕截图看来,您使用的是相对路径。工作文件夹是一样的吗?
-
是的,它是一样的,我确保独立构建每个项目只是为了确保创建 .exe。它们在同一个文件夹中彼此相邻,这就是让它变得更奇怪的原因。
-
您是从 IDE 中还是从控制台窗口启动第一个 exe?
-
在 IDE 中,DiceConsumer.exe 被设置为启动项目,并由此调用 WM_CREATE 消息中的 CreateProcess。我进入了 VS2010 构建中的 Debug 文件夹并运行 DiceConsumer.exe 启动 DiceProducer.exe 很好。
-
我猜它可以从控制台工作。您能检查一下 IDE 中指定的工作文件夹设置吗?
标签: c visual-studio-2008 winapi visual-studio-2010 visual-studio-express