使用 VS2010 构建的应用程序无法在 VS-Express2008 中运行 - C

发布于 2024-08-31 05:16:43 字数 762 浏览 3 评论 0原文

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

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

由于某种原因,应用程序的只有一部分无法工作,我使用 CreateProcess() 来执行项目 2 中的“Project1.exe”。

这在 vs2010 下工作正常,但由于某种原因,它在 VS2008 express 下无法工作,显示 GetLastError()错误 2:未找到文件。

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

Error Image

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

我不明白为什么它适用于一种 IDE 而不适用于另一种。

有什么建议吗?谢谢!

编辑:

的屏幕截图

.exe .exe location

I have wrote an application that consists of two projects in a solution, each project contains only 1 .c source file. I was using Visual Studio 2010 Ultimate but due to the University only supporting 2008 I decided to create a blank solution and copy the source files into the new one.

After creating a new solution in VS2008 express, creating two projects and re-creating and adding the source files to the projects I ran the application.

For some reason only one part of the application does not work, I use CreateProcess() to execute "Project1.exe" from Project 2.

This works fine under vs2010 but for some reason it's not working under VS2008 express, GetLastError() is showing an Error 2: File Not Found.

This is an image showing the same code in both IDE's:

Error Image

I'm not using anything special and I've made sure that both solutions/projects are using .Net 3.5.

I can't work out why it would work for one IDE and not the other.

Any suggestions? Thanks!

Edit:

Screenshot of .exe's

.exe location

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄居者 2024-09-07 05:16:43

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

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

You are not passing the full path name of the .exe to CreateProcess(). This usually only works if you are lucky. The .exe files would have to be in the same directory and the working directory has to be set to that directory. First verify that the .exes are where you hope they are.

Avoid the dependency on the working directory by generating the full path to the 2nd .exe. Use GetModuleFileName(), passing NULL, to get the full path of your 1st .exe

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文