我開發了一個小型BMP到JPG轉換器。 下面的代碼工作,並提供準確的結果,因爲我需要常量WCHAR * myVar vs const char * myVar
BOOLEAN convertBMPtoJPG(const WCHAR *src_bmp_path,const WCHAR *dest_jpeg_path);
然後調用功能,
const WCHAR *src_bmp_path = L"test.bmp";
const WCHAR *dest_jpeg_path= L"test.jpg";
convertBMPtoJPG(src_bmp_path,dest_jpeg_path);
不過,我需要的功能改變如下(按要求我一直在考慮),但這樣做會導致編譯錯誤。
BOOLEAN convertBMPtoJPG(char *src_bmp_path,char *dest_jpeg_path);
然後函數將被稱爲,(雖然我需要遵循,就像上面的原型),
char *src_bmp_path = "test.bmp";
char *dest_jpeg_path= "test.jpg";
convertBMPtoJPG(src_bmp_path,dest_jpeg_path);
上stackover另一個問題提供了有關的Win32類型的信息太多,但是我還沒有couldn解決不了問題。 我在Win32 API中並不是那麼棒,請指導我後面的方法出了什麼問題。
編輯:
錯誤消息: 錯誤C2664: 'Gdiplus ::狀態Gdiplus ::圖像::保存(常量WCHAR *,常量CLSID *,常量Gdiplus :: EncoderParameters *)':不能將參數1從'char *'轉換爲'const WCHAR *' 1>指向的類型是不相關的;轉換需要reinterpret_cast,C風格演員或功能風格演員
看到您如何決定讓我們猜測編譯錯誤是什麼,也許您錯過了'const'? – James 2013-02-20 18:44:22
你的char *字符串是什麼格式?它是UTF-8嗎?它是否在用戶的默認代碼頁中?它可能是一個不同的代碼頁? – 2013-02-20 19:08:31