我在項目中添加了一個資源。它的大小是4.096字節。 我需要將它分配給DWORD,因爲WriteFile()的第三個參數需要它。從'double'轉換爲'DWORD',可能丟失數據
WriteFile(hFile, pExeResource,size, &bytesWritten, NULL);
所以我投這樣的:
UPDATE2:DWORD bootsize = 4096; //並且仍然警告我 但是,我收到了此警告。你可以幫助我嗎?
我在項目中添加了一個資源。它的大小是4.096字節。 我需要將它分配給DWORD,因爲WriteFile()的第三個參數需要它。從'double'轉換爲'DWORD',可能丟失數據
WriteFile(hFile, pExeResource,size, &bytesWritten, NULL);
所以我投這樣的:
UPDATE2:DWORD bootsize = 4096; //並且仍然警告我 但是,我收到了此警告。你可以幫助我嗎?
我認爲這是區域/語言差異和C語法的組合。
我假設你的意思是4.096
是帶有逗號分隔符的4,096
。 (由於地區/語言的差異,您可能使用.
而不是,
。)
在C/C++中,不使用分隔符。只是這樣做,而不是:
DWORD bootsize = (DWORD)4096;
4.096
是一個浮點值(double
型的),只需不到4.1,而DWORD
是一個整數類型(通常類似於一個unsigned int
)。當然,你在轉換中失去了浮點值的小數部分。 (也許你的意思是整數值4096
(沒有標點符號)?)
4.096
是四個字節的96 /千分之一。我想你只是想4096
。那麼你不必投。通常情況下,在編程中不要使用逗號或句點,除非您確實將其表示爲小數點。
DWORD bootsize = 4.096; 沒有錯誤,但相同的警告,所以它不能編譯 – sparky
非常感謝你,但我仍然得到相同的警告:( – sparky
你是否在其他地方做這個?我上面給出的修正不應該給任何警告。 – Mysticial
不只是這個確切的地方。MS VS2010仍然發出警告 – sparky