Как Вы заставляете минимальную программу SDL компилировать и связываться в экспрессе Visual Studio 2008 года?

filter(filterCriteria: String) {
    this.filterJson = {...this.json, pools: pools.filter((element) => element.name === filterCriteria);
}

Вы могли бы написать это немного чище, используя распространение и изменив свойство пулов, как указано выше.

Я предполагаю, что вы должны хранить кэшированную копию оригинального 'this.json' для случая, когда фильтры сбрасываются.

7
задан Johannes Hoff 28 December 2008 в 18:54
поделиться

3 ответа

У меня нет VC ++ доступным в данный момент, но я несколько раз видел эту проблему.

Необходимо создать проект Win32 в противоположность консольному проекту. Проект Win32 ожидает функцию WinMain как точку входа программы. SDLmain.lib содержит эту точку входа, и заголовочный файл SDL_main.h имеет макрос, который повторно отображает Вашу основную функцию на SDL_main. Эта функция вызвана точкой входа в библиотеке SDLmain.

Основная функция должна иметь следующую подпись:

int main(int argc, char *argv[])

Это также требуется, чтобы включать SDL.h перед объявлением Вашей основной функции, и необходимо связаться и с SDL.lib и с SDLmain.lib.

Похоже на выполнение этого. Так, мое предположение - то, что у Вас есть консольная установка проекта. Поэтому компоновщик ищет основную функцию для вызова, но это становится повторно отображенным на SDL_main макро-SDL_main.h. Так, компоновщик не может найти точку входа и сдается!

6
ответ дан 7 December 2019 в 03:21
поделиться

Мне это помогло добавить следующие строки прежде основной ():

#ifdef _WIN32
#undef main
#endif

Немецкая Википедия также предлагает добавить эти строки вместо этого:

#ifdef _WIN32
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#endif

Хотя у меня все еще были ошибки ссылки, когда я попробовал второе решение.

3
ответ дан 7 December 2019 в 03:21
поделиться

Компоновщик не может найти точку входа. Что означает Ваше основное (), функция не распознана как точка входа.

Если Вы имеете .def файл, удаляете его.

Кроме того, при установке проекта скомпилировать с unicode и не как mbcs необходимо использовать wmain () вместо основного ().

0
ответ дан 7 December 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: