Почему сброс / является несовместимым с/mt и/mtd в Visual Studio?

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

var reg = /d\+1/;

21
задан Cute 2 June 2009 в 11:09
поделиться

1 ответ

Я думаю, что подсказка дается здесь :

Если вы используете компилятор / clr переключатель, ваш код будет связан с библиотека импорта, msvcmrt.lib. В Библиотека импорта ссылается на новую библиотека msvcm80.dll, которая предоставляет прокси между вашим управляемым кодом и родной ЭЛТ. Вы не можете использовать статически связанный CRT (/ MT или / MTd options) с помощью / clr. Использовать динамически подключаемые библиотеки (/ MD или / MDd).

Флаг / clr заставляет ваш код ссылаться на новую dll msvcm80.dll - это действует как прокси между вашим управляемым кодом и CRT. Трудно сказать, что именно делает этот прокси, но я предполагаю, что он действует как интерфейс для выделения памяти в управляемой куче, сборке мусора, управляемых потоках и тому подобном. Если вы свяжете статические версии CRT, тогда прокси не сможет перехватить ваши вызовы к библиотекам времени выполнения.

22
ответ дан 29 November 2019 в 21:50
поделиться
Другие вопросы по тегам:

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