使用 CString::Format 格式化长值时的错误 (??)
Bug (??) in formatting long values with CString::Format
我对以下代码有疑问:
CString cstr;
cstr.Format("SELECT foobar %ld, %ld ",
" AND type = '%s' ",
1426233870,1426243870, "'OR'");
生成的 CString 包含错误的数字!
代码被简化了,实际上我是在几秒钟内从数据库中选择两个时间戳之间的数据集。
我能够通过格式化两个字符串并将第二个附加在第一个字符串的末尾来解决我的问题,所以我不需要答案。但是,如果有人可以确认这是 CString::Format 中的错误,这可能会保护其他人不会像我一样紧张...
此致
如果是MFC,应该是这样的:
CString cstr;
cstr.Format("SELECT 123=%ld, 456=%ld AND type = '%s' ", 123, 456, "'type'");
这就像 printf。
我对以下代码有疑问:
CString cstr;
cstr.Format("SELECT foobar %ld, %ld ",
" AND type = '%s' ",
1426233870,1426243870, "'OR'");
生成的 CString 包含错误的数字!
代码被简化了,实际上我是在几秒钟内从数据库中选择两个时间戳之间的数据集。
我能够通过格式化两个字符串并将第二个附加在第一个字符串的末尾来解决我的问题,所以我不需要答案。但是,如果有人可以确认这是 CString::Format 中的错误,这可能会保护其他人不会像我一样紧张...
此致
如果是MFC,应该是这样的:
CString cstr;
cstr.Format("SELECT 123=%ld, 456=%ld AND type = '%s' ", 123, 456, "'type'");
这就像 printf。