[問題] VC 2005編譯不過範例

看板C_and_CPP (C/C++)作者時間15年前 (2011/03/02 18:25), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC 2005 問題(Question): 這個問題 應該很多人也問過了,但我還是試失敗了 所以請大家指導我一下 這個程式是從書上抓下來的 但是裏頭的型別 應該是涉及到UNICODE及多位元組的 相關設定 我在solution explorer裏將unicode改為multi的型態還是有問題 所以請大家幫個忙 錯誤結果(Wrong Output): .\GetVolumeInfo.cpp(23) : error C2664: 'GetLogicalDriveStringsW' : 無法將參數 2 從 'CHAR [1024]' 轉換成 'LPWSTR' 指向的型別沒有相關; 轉換必須有 reinterpret_cast、C-Style 轉換或 函式樣式轉換 .\GetVolumeInfo.cpp(32) : error C2664: 'lstrlenW' : 無法將參數 1 從 'PCHAR' 轉換成 'LPCWSTR' 指向的型別沒有相關; 轉換必須有 reinterpret_cast、C-Style 轉換或 函式樣式轉換 程式碼(Code):(請善用置底文網頁, 記得排版) http://nopaste.csie.org/1bcde 補充說明(Supplement): -- 他就是數學家馮.諾伊曼。 他是如此的才華橫溢,一些與他共事的諾貝爾獎得主都懷疑他是 不是經過喬裝改扮的外星人。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.160.44

03/03 00:37, , 1F
為什麼錯誤訊息裡的function沒有在code裡面?
03/03 00:37, 1F

03/03 01:31, , 2F
小弟我compile下去時, error都是報在 GetDirverInfo ();
03/03 01:31, 2F

03/03 01:32, , 3F
把它的prototype修成 LPTSTR , 然後就是Linker找不到它.
03/03 01:32, 3F
※ 編輯: markchen 來自: 114.25.154.76 (03/03 09:02)

03/03 09:03, , 4F
對不起樓上兩位大大 code貼錯了,目前已更正~
03/03 09:03, 4F

03/04 03:40, , 5F
如果 GetDirverInfo 是你自己的外部函數而且真的是吃
03/04 03:40, 5F

03/04 03:41, , 6F
LPSTR 而非 LPTSTR, 那第一個error點直接改call
03/04 03:41, 6F

03/04 03:41, , 7F
GetLogicalDriveStringsA 就好, 第二個錯誤那邊改call
03/04 03:41, 7F

03/04 03:42, , 8F
strlen 就好; 如果你真的有的function要用 CHAR 有的
03/04 03:42, 8F

03/04 03:43, , 9F
要用到WCHAR, 那互相傳遞之前就得先另行轉換....
03/04 03:43, 9F
文章代碼(AID): #1DRXiQuo (C_and_CPP)
文章代碼(AID): #1DRXiQuo (C_and_CPP)