Я пишу код, который компилируется, но приложение по какой-то причине не запускается. Я не получаю ошибок компиляции, но когда я пытаюсь запустить его, я получаю сообщение, в котором говорится: «xxx.exe не является допустимым приложением win32». Я запускаю это на машине Windows 7. IDE, которую я использовал, - это Visual Studio 2012. Я не использую какие-либо странные библиотеки; iostream - единственная библиотека, которую я включил. Единственное, что может быть причиной этого, это то, что я использую два очень больших 2-D массива. Они оба 32000x32000, и они имеют тип данных «char». В какой-то момент программа работала нормально, когда у нее был только один из этих массивов. Я действительно не вижу, как добавление второго массива нарушит код, но, возможно, я ошибаюсь. Кроме этого, все это довольно стандартно. Я бы опубликовал код, и я все еще могу, если бы это было полезно, но оно очень длинное и довольно грязное. Дайте мне знать, если у вас есть мысли. Еще одна вещь, я пробовал это на двух отдельных компьютерах, и никто не работал. Оба были под управлением Windows 7 64-бит. Большое спасибо.Windows 7 «недействительная ошибка приложения win32» в Visual Studio 2012
ответ
Ваши массивы на самом деле слишком большие. Существуют ограничения на объем данных, которые может иметь приложение Win32, даже если это 64-разрядное приложение.
От http://software.intel.com/en-us/articles/memory-limits-applications-windows
32-битном
Static data - 2GB ...
64-битном
Static data - 2GB ...
Обратите внимание, что ограничение на статических и стека данных одинакова в обоих 32-битной и 64-битные варианты. Это связано с форматом файла файла Windows Exercial Executable (PE) Windows , который используется для описания EXE и DLL, как указано компоновщиком. Он имеет 32-битные поля для разделов изображения смещения и длины и не был расширен для 64-битных вариантов Windows. Как и в 32-битной Windows, статические данные и стек имеют одинаковые первые 2 ГБ адресного пространства.
Большое спасибо. Я должен внести несколько изменений, но это должно решить! – user3047641
- 1. Windows 7 + Visual Studio 2012 Разработка игр
- 2. Ошибка в Visual Studio 2012
- 3. Развертывание приложения Visual Studio 2012 C# windows
- 4. Ошибка Visual Studio 2012
- 5. Visual Studio 2012 Неправильная конфигурация
- 6. Visual Studio 2012 C++ Windows 32
- 7. Событие 1000, Ошибка приложения, Windows 7, Visual Studio 2008
- 8. Ошибка Microsoft Visual Studio 2012
- 9. Ошибка C2014; Visual Studio 2012
- 10. Невозможно увидеть Windows Phone 7 эмулятор в visual studio 2012
- 11. Blend in Visual Studio 2012 Ultimate в Windows 7
- 12. Ошибка XapCacheFile.xml - Visual Studio - Windows Phone 7
- 13. Настройки приложения Visual Studio 2012
- 14. Обновления Visual Studio 2012
- 15. Можете ли вы разрабатывать приложения Windows RT в Visual Studio 2012 на Windows 7
- 16. Visual Studio 2012 - Не удается создать проекты win32
- 17. Ошибка только для Visual Studio 2012 Ошибка
- 18. Windows 7, Visual Studio 2012, PhoneGap 2.9 - Работает ли это?
- 19. Visual Studio 2012 Отладка не работает после обновления Windows 7?
- 20. DirectX с использованием Visual Studio 2012 Express (Windows 7)
- 21. Xamarin visual Studio 2012
- 22. проекта Visual Studio Win32 Error
- 23. Visual Studio 2012 Платформа: только ARM и Win32?
- 24. Ошибка приложения Visual Studio 2012 MVC в Internet Explorer
- 25. Ошибка Visual Studio 2012 «Не содержит определения»
- 26. Visual Studio 2012 + 403.7 Ошибка
- 27. Приложение Visual Studio 2012 для Windows 10?
- 28. Visual Studio 2012 - ошибка MSVCR110.dll
- 29. Visual Studio 2012 C++ ошибка
- 30. Ошибка c4430? Visual Studio 2012
'но это очень длинный и довольно грязный' Это означает, что вы не сделали небольшой _testcase_, чтобы воспроизвести проблему, и, соответственно, вы еще не закончили свою личную отладку. Дайте нам знать, как это происходит. –
Убедитесь, что он действительно компилируется. Прочитайте вывод при его создании, убедитесь, что файл '* .cpp', который вы создали, выполняется. Вы всегда можете создать новый проект и скопировать код и посмотреть, произойдет ли одно и то же. – Caesar
Я обнаружил, что это не проблема с кодом. Я пробовал комментировать каждую строку кода так, чтобы она была оператором include, с использованием пространства имен std и пустой основной функции. Это все равно не сработает. Я предполагаю, что в VS 2012 есть некоторые настройки, которые мне нужно изменить. Есть идеи? – user3047641