2010-06-18 76 views
3

我在C++窗口中編碼。如何寫INT64到CString

INT64 dirID = -1; 
CString querySQLStr = _T(""); 
querySQLStr.Format(L"select * from ImageInfo where FolderPath=%64d;", dirID); 

querySQLStr always like this: 
select * from ImageInfo where FolderPath=               1214; 

是不是使用%64D 非常感謝

回答

8

我沒有Windows機器方便的對測試這一點,但我覺得應該CString的接受這個?

querySQLStr.Format("%I64d", dirID); 

可能值得注意的是,這是特定於Windows的,但是因爲您使用的是CString,所以我認爲沒關係。

+0

我可以證實它的工作。 %lld(兩個小寫的Ls)也可以工作,'ll'指的是LONGLONG,它(在Win32下至少)被typedefed爲_int64,和INT64一樣(由不同的頭文件定義)。 – JTeagle 2010-06-18 13:57:29

0

我認爲你必須嘗試這個辦法:

__int64 val; 
...... 
ParamVal.Format(_T("%d{I64}"), val);