如何在禁用 CRT 的情况下使用 CRT 的*某些*功能?
How to use *some* functions of CRT with CRT Disabled?
我已经禁用了 CRT,但是我希望使用一些 运行-time 函数,如 strtok、strcmpy、strcpy 等等,但我不希望整个 CRT 运行ning 可以有人告诉我如何在没有 运行ning CRT 和启用所有 CRT 功能的情况下使用这些功能。
我只想要几个 CRT 功能,有人可以帮助我吗?
亲切的问候,
罗汉·维杰哈瓦尔
您需要一种 C 运行-time 库,因为您已经告诉我们对 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 '[=10=]' is found.
while ( *dest++ = *src++ )
{
}
return dst;
}
如果像 strtok
这样的函数不是无状态的,则必须初始化状态。所以你将不得不初始化你的微型 CRT。
如果您担心自己不能完全通过自己搜索其他人为您编写的代码,例如在 Code Project or µCLib
我已经禁用了 CRT,但是我希望使用一些 运行-time 函数,如 strtok、strcmpy、strcpy 等等,但我不希望整个 CRT 运行ning 可以有人告诉我如何在没有 运行ning CRT 和启用所有 CRT 功能的情况下使用这些功能。
我只想要几个 CRT 功能,有人可以帮助我吗?
亲切的问候,
罗汉·维杰哈瓦尔
您需要一种 C 运行-time 库,因为您已经告诉我们对 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 '[=10=]' is found.
while ( *dest++ = *src++ )
{
}
return dst;
}
如果像 strtok
这样的函数不是无状态的,则必须初始化状态。所以你将不得不初始化你的微型 CRT。
如果您担心自己不能完全通过自己搜索其他人为您编写的代码,例如在 Code Project or µCLib