Каков лучший способ найти ВСЮ Вашу память при разработке на Компактной Платформе?

Самый неприятный синтаксический разбор

Это связано с тем, что известно как «самый неприятный синтаксис C ++». В принципе, все, что может интерпретировать компилятор как объявление функции, будет интерпретироваться как объявление функции.

Другой экземпляр той же проблемы:

std::ifstream ifs("file.txt");
std::vector<T> v(std::istream_iterator<T>(ifs), std::istream_iterator<T>());

v интерпретируется как объявление функции с двумя параметрами.

Обходной путь заключается в добавлении еще одной пары круглых скобок:

std::vector<T> v((std::istream_iterator<T>(ifs)), std::istream_iterator<T>());

Или, если у вас есть C ++ 11 и инициализация списка (также известная как равномерная инициализация):

std::vector<T> v{std::istream_iterator<T>{ifs}, std::istream_iterator<T>{}};

При этом нет возможности интерпретировать его как объявление функции.

6
задан 6 revs, 4 users 100% 24 September 2008 в 15:28
поделиться

3 ответа

Попытайтесь включить вход Interop.

Кроме того, если у Вас есть доступ к коду собственного dll, Вы используете, проверяете это: http://msdn.microsoft.com/en-us/netframework/bb630228.aspx

3
ответ дан 17 December 2019 в 04:54
поделиться

Я определенно боролся с неуправляемыми проблемами в управляемом приложении C# некоторое время - это не легко.

То, что я нашел, чтобы быть самым полезным, должно иметь регулярный вывод к текстовому файлу журнала. Например, можно распечатать вывод GlobalMemoryStatus каждые несколько минут наряду с входом каждый раз, когда Вы загружаете новую форму. Оттуда можно, по крайней мере, видеть, что или память постепенно разрушает, или, огромные блоки памяти исчезли в определенное время суток.

Для нас мы весь день находили постепенную потерю памяти, пока устройство использовалось. Оттуда мы в конечном счете нашли, что сканирующее устройство штрихкода не инициализировалось ни по какой конкретной причине в нашем базовом классе Формы (я обвиняю предыдущего разработчика!:-)

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

1
ответ дан 17 December 2019 в 04:54
поделиться

Хорошо, я использую C++ на CE, не C#, таким образом, это не может быть полезно, но...

Я использую пакет, названный панелью инструментов Entrk, которая контролирует использование памяти и использование ресурсов, утечки и исключения под Windows CE. В значительной степени как легкая версия CE boundschecker. Добивается цели большинство раз.

1
ответ дан 17 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

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