2014-05-20 25 views
0

我通過以下方式創建一個文件:寫入文件,給人一種不正確的名稱

if ((BmpFile = CreateFile((LPCWSTR)"Test.bmp", 
          GENERIC_WRITE, 
          0, NULL, 
          CREATE_ALWAYS, 
          FILE_ATTRIBUTE_NORMAL, 
          NULL)) == INVALID_HANDLE_VALUE) 

但是,被創建的文件有名稱敔瑳戮滅。

顯然不是我要找的!我正在試圖學習Windows API,有誰能告訴我我必須改變它以輸出我認爲應該怎樣的東西嗎?我看過http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx,這對我沒有太大幫助 - 我想因爲我不知道我在找什麼。

不成熟編輯:其他所有功能都按預期的方式工作。

回答

6

您不會通過簡單的投射創建WSTR。如果你想讓你的固定文本成爲一個寬字符串,應用文字前面的L:

... = CreateFile(L"Test.bmp", ... 
+0

哦,我認爲這和鑄造一樣簡單!這就是爲什麼它沒有記錄,這是常識!如果我有char *怎麼辦? – druckermanly

+0

你確實喜歡我們所有人:你是谷歌它。前十個鏈接之一將引導你正確[在這裏](http://stackoverflow.com/questions/19715144/how-to-convert-char-to-lpcwstr):) – nvoigt

+0

我發現一個,並試圖使用:wchar_t * convertCharArrayToLPCWSTR(const char * charArray)發現在http://stackoverflow.com/questions/19715144/how-to-convert-char-to-lpcwstr/19717944#19717944但它不工作 - 我'得到相同的文本!編輯:清理建立,重建,它的工作。奇怪的! – druckermanly