opengl — порт C ++ в VS: сбой нового проекта (те же файлы и настройки)

Я пытаюсь переместить код из предварительного проекта в новый проект (оба сделаны в Visual Studio 2012).

Оригинал был сделан как консольное приложение и я хочу, чтобы новое было Приложение для Windows. Я создал пустой проект и переместил файлы / установил пути к библиотекам.

Это простая программа OpenGL с шейдерами.

РЕДАКТИРОВАТЬ:

Бывает, что даже когда я снова переключаюсь на создание консольного приложения с такими же свойствами .vcproj, У меня есть фатальная ошибка в Release и Debug.
Вы можете найти их ниже.

Почему происходит сбой моей программы? Все пути к библиотекам установлены очень хорошо, потому что это те же настройки, которые используются для предыдущий проект с теми же файлами, которые работали (в другом решении).

ошибки

Освободить место аварии (за пределами #ifdef _DEBUG в dbghook.c
файл)

 int _debugger_hook_dummy;

__declspec(noinline)
void __cdecl _CRT_DEBUGGER_HOOK(int _Reserved)
{
/* assign 0 to _debugger_hook_dummy so that the function is not folded in retail */
(_Reserved);
_debugger_hook_dummy = 0;
}

Отладка места сбоя (fread.c) — появляется всплывающее окно с ошибкой
(Ошибка отладки):

  _VALIDATE_RETURN((stream != NULL), EINVAL, 0);

1

Решение

После резки моего исходного файла по частям мне удалось отладить это. Проблема была не в порте (извините).

У меня были незначительные проблемы, связанные с расположением исполняемого файла: Visual Studio помещает их по умолчанию в SolutionDir / DebugorRelease, в то время как я искал их в ProjectDir / DebugorRelease.

Но главная проблема возникла из-за смены функции.
Есть боковой файл, который я использую для загрузки текстур, который довольно старый и использует Еореп открыть файлы.

Следуя полученным предупреждениям, я изменился все вхождения fopen в fopen_s, со всеми необходимыми модификациями. Это точная линия, где программа потерпела крах.

Я положил обратно версия fopen, проверил расположение файлов, и он вернулся к выполнению (не в Visual Studio, а только через командную строку, как в оригинальном проекте). Это для консольного приложения.

Чтобы сделать его приложением Windows, следующая строка выполняет свою работу, и на этот раз, хотя и только для командной строки, она работает по-настоящему.

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
0

Другие решения


По вопросам рекламы [email protected]