2015-03-07 4 views
2

У меня отключен CRT, однако я хочу использовать некоторые функции времени выполнения, такие как strtok, strcmpy, strcpy и т. Д., Но я не хочу, чтобы весь запуск CRT мог кто-то сказать мне, как я могу использовать эти функции без запуска CRT и включение всей функции ЭЛТ.Как использовать * некоторые функции CRT с CRT отключены?

Я всего лишь несколько функций CRT, может кто-нибудь мне помочь?

С наилучшими пожеланиями,

Rohan Vijjhalwar

+0

Что вы подразумеваете под "disable CRT"? Чего вы пытаетесь достичь? –

+0

Что? Вырвите бит, который вы не хотите запускать. Прокомментируйте это или что-то еще, затем перестройте crt. –

+0

На самом деле, это очень непонятный вопрос, и я собираюсь в VTC как таковой. –

ответ

5

Вам нужен вид C библиотеки времени выполнения, как вы уже сказали нам с пожеланием для STRCMP & Co. Если вы думаете, что бы получить какую-либо выгоду в создавая меньшие двоичные файлы или меньше зависимостей от DLL, вы можете использовать любой крошечный CRT.

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

// choose const for arguments where necessary. 
char* strcpy(char *dst, char *src) 
{ 
    char* dest = dst; 

    // copy char by char until '\0' is found. 
    while (*dest++ = *src++) 
    { 
    } 

    return dst; 
} 

Если у вас есть функция, как strtok, которая не является лицом без гражданства, вы должны инициализировать состояние. Таким образом, вам придется инициализировать ваш крошечный CRT.

Если вы боитесь, что не можете написать его полностью по собственному поиску кого-то, кто сделал это за вас, например. на Code Project или µCLib

+1

Ответ был блестящим, спасибо! –