C++ статические библиотеки без mfc, которые связаны с bad_alloc броска проекта MFC или CMemoryException*?

Ответ довольно очевиден, если вы уроните это в irb и посмотрите, что думает Руби:

%w('a b c d e')
# => ["'a", "b", "c", "d", "e'"]

Он не содержит e, а вместо этого e', потому что вы используете %w неправильно.

Удалить кавычки при использовании %w. Он разделяется на пробелы, а не на кавычки. Любые непробельные символы считаются частью строки и «застревают» к соседним буквам.

5
задан christopher_f 17 October 2008 в 21:45
поделиться

2 ответа

Это будет зависеть от опций компиляции для статических библиотек, которые будут связаны с приложением.

Если бы библиотеки компилируются с конфигурацией для использования статического Стандарта время выполнения C++ затем, я ожидал бы operator new из Стандарта время выполнения C++, которое назовут.

Если библиотеки будут скомпилированы с конфигурацией для использования Стандарта время выполнения C++ DLL затем, то разрешение этих функций будет отложено до загрузки программы и должно быть разрешено к заменам MFC operator new.

Я также включал ссылку на эту статью Herb Sutter относительно, обрабатывают ошибки выделения, которые можно найти полезным.

3
ответ дан 14 December 2019 в 19:30
поделиться

Поздравления - Вы, кажется, озадачили всех нас.:-)

В теории, если MFC обеспечивает перегрузку для глобального new функция, затем это должно использоваться всем кодом в программе. Но так как статические библиотеки были скомпилированы, не зная, о котором, я не могу сказать наверняка, что это было бы.

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

1
ответ дан 14 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

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