Самый неприятный синтаксический разбор
Это связано с тем, что известно как «самый неприятный синтаксис 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>{}};
При этом нет возможности интерпретировать его как объявление функции.
Попытайтесь включить вход Interop.
Кроме того, если у Вас есть доступ к коду собственного dll, Вы используете, проверяете это: http://msdn.microsoft.com/en-us/netframework/bb630228.aspx
Я определенно боролся с неуправляемыми проблемами в управляемом приложении C# некоторое время - это не легко.
То, что я нашел, чтобы быть самым полезным, должно иметь регулярный вывод к текстовому файлу журнала. Например, можно распечатать вывод GlobalMemoryStatus каждые несколько минут наряду с входом каждый раз, когда Вы загружаете новую форму. Оттуда можно, по крайней мере, видеть, что или память постепенно разрушает, или, огромные блоки памяти исчезли в определенное время суток.
Для нас мы весь день находили постепенную потерю памяти, пока устройство использовалось. Оттуда мы в конечном счете нашли, что сканирующее устройство штрихкода не инициализировалось ни по какой конкретной причине в нашем базовом классе Формы (я обвиняю предыдущего разработчика!:-)
Установка этого входа может быть маленькой стычкой, но для нас это выплатило огромные дивиденды в конечном счете особенно с устройством в живом использовании, мы можем получить реальные данные, инструментарий, отслеживания стека от исключений, и т.д.
Хорошо, я использую C++ на CE, не C#, таким образом, это не может быть полезно, но...
Я использую пакет, названный панелью инструментов Entrk, которая контролирует использование памяти и использование ресурсов, утечки и исключения под Windows CE. В значительной степени как легкая версия CE boundschecker. Добивается цели большинство раз.