Приложение, созданное с использованием VS2010, не работает в VS-Express2008 - C - PullRequest
1 голос
/ 02 мая 2010

Я написал приложение, которое состоит из двух проектов в решении, каждый проект содержит только 1 исходный файл .c. Я использовал Visual Studio 2010 Ultimate, но поскольку университет поддерживал только 2008 год, я решил создать пустое решение и скопировать исходные файлы в новое.

После создания нового решения в VS2008 Express, создания двух проектов, повторного создания и добавления исходных файлов в проекты, я запустил приложение.

По какой-то причине не работает только одна часть приложения, я использую CreateProcess () для выполнения "Project1.exe" из Project 2.

Это прекрасно работает под vs2010, но по какой-то причине он не работает под VS2008 express, GetLastError () показывает ошибку 2: файл не найден.

Это изображение показывает одинаковый код в обеих IDE:

Error Image

Я не использую ничего особенного и убедился, что оба решения / проекта используют .Net 3.5.

Я не могу понять, почему это будет работать для одной IDE, а не для другой.

Есть предложения? Спасибо!

Edit:

Скриншот .exe's

.exe location

1 Ответ

2 голосов
/ 02 мая 2010

Вы не передаете полный путь к файлу .exe в CreateProcess (). Обычно это работает, только если вам повезло. Файлы .exe должны находиться в одном каталоге, а рабочий каталог должен быть установлен в этом каталоге. Сначала убедитесь, что .exes находятся там, где вы надеетесь.

Избегайте зависимости от рабочего каталога, генерируя полный путь ко второму .exe. Используйте GetModuleFileName (), передав NULL, чтобы получить полный путь к вашему первому .exe

...