本文介绍了为什么StringCbPrintf格式错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我的程序中有以下代码行: StringCbPrintfA(szString, sizeof (szString), INSERT INTO ClassRecord(SchInfoID,ArmNameID,ClassNameID,ClassTypeID,SessionID) VALUES(%u,%u,%u,%u,%u),iSchInfoID,iArmNameID,iClassNameID,iClassTypeID,iSessionID); 其中相关类型是 long long & iSchInfoID; long long iArmNameID,iClassNameID,iClassTypeID,iSessionID; intellisence显示: iSchInfoID 1 iArmNameID 1 iClassTypeID 1 iSessionID 1 但是0被放在iArmNameID的缓冲区中。 可能出错了什么?解决方案 你的类型是long long但格式说明符是%u。 对于无符号的64位值,请尝试%llu。 I have the following line of code in my program:StringCbPrintfA(szString,sizeof(szString),"INSERT INTO ClassRecord(SchInfoID,ArmNameID,ClassNameID,ClassTypeID,SessionID) VALUES(%u,%u,%u,%u,%u)",iSchInfoID,iArmNameID,iClassNameID,iClassTypeID,iSessionID);where the relevant types are long long &iSchInfoID; long long iArmNameID, iClassNameID, iClassTypeID, iSessionID;intellisence shows that:iSchInfoID 1iArmNameID 1iClassTypeID 1iSessionID 1But 0 is placed in the buffer for iArmNameID.What could be wrong? 解决方案 Your types are "long long" but the format specifier is "%u".Try "%llu" for an unsigned 64 bit value. 这篇关于为什么StringCbPrintf格式错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
11-01 11:31