如何在禁用CRT的情况下使用CRT的某些*功能?

时间:2015-03-07 13:54:44

标签: c++ crt

我已经禁用了CRT,但是我希望使用一些运行时函数,比如strtok,strcmpy,strcpy等,但是我不希望整个CRT运行,有人可以告诉我如何在不运行的情况下使用这些函数CRT并启用所有CRT功能。

我只想要几个CRT功能,有人可以帮我吗?

亲切的问候,

Rohan Vijjhalwar

1 个答案:

答案 0 :(得分:5)

你需要一种C运行时库,正如你已经告诉我们的那样,希望strcmp& amp;如果你认为你可以在创建更小的二进制文件或更少依赖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