2010-07-22 52 views
0

我在Visual Studio 2005中創建了一個C工程。每當我使用任何Windows API(CreateFile,CreateProcess,RegOpenKeyEx等)時,它們都不能正常工作,意味着導致錯誤返回值。沒有收到任何編譯錯誤。 它們是否與項目設置等有關Windows API使用

+2

當你得到一個錯誤,你至少要告訴錯誤是什麼。還張貼代碼給你的錯誤。 – 2010-07-22 05:35:00

回答

0

我使用的是unicode設置,函數名稱因unicode而異。

+0

如果使用正確的typedef,則不適用。編譯器會自動爲函數插入正確的名稱(通常在函數名稱的末尾添加A或W)。 – 2011-03-29 04:20:28

+0

@Cody:編譯器不會這樣做(我希望它),預處理器會這樣做,這可能會導致問題在這裏和那裏。 – Necrolis 2011-03-29 05:30:10

+0

@尼克利斯:是的,你說得對。我不確定它是如何相關的;這不是我評論的重點。依賴於預處理器*通常會導致問題,但我從未發現這會造成問題。它肯定會緩解比自己附加A或W更多的問題。 – 2011-03-29 05:37:57