Я использовал MVVM в последнее время на нескольких различных проектах Silverlight, и он работал действительно хорошо, я определенно рекомендовал бы его. сообщение Jonas является великолепным местом для запуска, я недавно имею , занес в блог на моих событиях MVVM также и создал действительно простое решение для демонстрации основных точек соприкосновения.
Да, strtok ()
, действительно, использует некоторую статическую память для сохранения своего контекста между вызовами. Используйте вместо этого реентерабельную версию strtok ()
, strtok_r ()
или strtok_s ()
, если вы используете VS (идентично strtok_r ()
).
У него есть дополнительный аргумент контекста, и вы можете использовать разные контексты в разных циклах.
char *tok, *saved;
for (tok = strtok_r(str, "%", &saved); tok; tok = strtok_r(NULL, "%", &saved))
{
/* Do something with "tok" */
}
strtok is using a static buffer. In your case you should use strtok_r. This function is using a buffer provided by the user.
WayneAKing разместил альтернативу в Центре разработчиков Microsoft.
Цитируя его:
Зайдите сюда
и загрузите этот файл
stptok.c
Улучшенная разметка функцияВы также можете скачать необходимые заголовочные файлы с того же сайта.
Это модифицированная версия strtok который помещает проанализированные токены (подстроки) в отдельном буфере. Ты должен иметь возможность изменить его на удовлетворить ваши потребности.
- Уэйн
П.С. - Обратите внимание, что эти файлы могут находиться в Формат * nix с учетом конца строки. т.е. - только 0x0A, а не 0x0D 0x0A
Это альтернатива, если в вашей среде нет библиотек Microsoft.