背景:
我的应用程序没有 CRT,因为它必须便携且小巧。
问题:
当我在 Windows XP 的虚拟机上运行我的应用程序时,我的CreateProcess()
功能失败了,我需要GetLastError()
DWORD
在MessageBox()
不使用任何 CRT 的情况下显示,
如何sprintf()
在我的程序中手动实现函数以将DWORD
类型转换为 achar buffer
以在MessageBox()
函数中显示以获取错误类型,因此我可以解决问题。
我已经实现了自己的memset()
功能
extern "C" void * __cdecl memset(void *, int, size_t);
#pragma function(memset)
void * __cdecl memset(void *pTarget, int value, size_t cbTarget) {
unsigned char *p = static_cast<unsigned char *>(pTarget);
while (cbTarget-- > 0) {
*p++ = static_cast<unsigned char>(value);
}
return pTarget;
}
我不确定如何实现自定义sprintf()
功能
谢谢