背景:
我的应用程序没有 CRT,因为它必须便携且体积小。
问题:
当我在 Windows XP 的虚拟机上运行我的应用程序时,我的 CreateProcess()
函数失败,我需要显示 GetLastError()
DWORD
在 MessageBox()
中,不使用任何 CRT,
如何在我的程序中手动实现 sprintf()
函数,将 DWORD
类型转换为 char 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()
函数
谢谢
最佳答案
wsprintf 在没有 CRT 的 Windows 中可用。只是#include windows.h
关于c++ - 在没有 CRT 的情况下转换 DWORD,实现自定义 sprintf() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879307/