C++ 如何在禁用CRT的情况下使用CRT的*部分*功能?

C++ 如何在禁用CRT的情况下使用CRT的*部分*功能?,c++,crt,C++,Crt,我已经禁用了CRT,但我希望使用一些运行时功能,如strtok、strcmpy、strcpy等,但我不希望整个CRT运行。有人能告诉我,在不运行CRT和启用所有CRT功能的情况下,如何使用这些功能 我只需要几个CRT功能,有人能帮我吗 亲切问候, Rohan Vijjhalwar您需要一种C运行时库,正如您在《strcmp&Co愿望》中告诉我们的那样。如果您认为创建更小的二进制文件或更少的对DLL的依赖性会带来任何好处,那么您可以使用任何微小的CRT 为了在引导加载程序中使用,我编写了自己的库,

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

我只需要几个CRT功能,有人能帮我吗

亲切问候,


Rohan Vijjhalwar

您需要一种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


如果您担心无法完全通过自己搜索为您编写的其他人来编写,例如at或

您所说的“禁用CRT”是什么意思?你想实现什么?什么?把你不想跑的部分砍掉。评论一下,或者别的什么,然后重建crt。事实上,这是一个非常不清楚的问题,我打算去职业训练局。@MartinJames我知道这听起来很疯狂,但我正试图减少每一个尺寸。这不是一个实际的项目-我只是在尝试研究和做一个挑战,以使某个代码尽可能小我建议更改问题的标题。您不要求初始化,而是要求使用函数。这可能会混淆其他一些不在脑海中的人。