_vsnprintf_s崩溃解决办法

下面代码在执行_vsnprintf_s这句时崩溃了,还有其他时候格式类型和值对应是对的,也崩溃了,有什么办法可以阻止_vsnprintf_s崩溃?

void myPrintf(const char *pFormat, ... )

{

va_list args;

va_start(args,  pFormat);

char buf[1024] = {0};

_vsnprintf_s(buf, sizeof(buf), pFormat, args);

va_end(args);

}

int main()

{

      HRESULT hr = -1;

      myPrintf("%s", hr);

}

hr是整型,不能用%s输出的啊

打印的地方太多了,现在没法逐一检查,有什么办法可以防止_vsnprintf_s崩溃?