使用VS2012編程,想在MFC的Date Time Picker空間中使用回呼欄位,基本上是按照MSDN上的說明操作的,網址在此:
https://msdn.microsoft.com/zh-cn/library/cc468269(VS.71).aspx
代碼也是直接復制粘貼的,然后在回應DTN_FORMAT通知的時候,代碼中用了wsprintf函式(注:游標移到函式上的時候顯示#define wsprintf wsprintfW),就是以下兩行:
wsprintf(pDTFormat1->pszDisplay,
"%d",oCurTime.GetDayOfYear());
然后提示我說pDTFormat->pszDisplay這個引數LPCWSTR型別的,與LPWSTR型形參不兼容
我試著把這個實參先轉換成CString型別,再轉換成LPWSTR型別,沒有報錯了,但是運行后并不是預期的效果。
有人知道該怎么修改嗎?
uj5u.com熱心網友回復:
用個靜態變數試試看
static TCHAR szBuff [64];
_stprintf_s(szBuff, 64, _T("%d"), oCurTime.GetDayOfYear());
pDTFormat1->pszDisplay = szBuff;
uj5u.com熱心網友回復:
你的工程別用unicode環境就行了uj5u.com熱心網友回復:
看檔案啊,你往傳入的引數里寫東西是要造反啊... _(:3」∠)_uj5u.com熱心網友回復:
我以為 “%d" 是錯誤的呢?應該使用 _T("%d")
uj5u.com熱心網友回復:
謝謝,解決了
uj5u.com熱心網友回復:
沒用UNICODE環境也沒能解決不能從LPCSTR到LPSTR轉換的問題
uj5u.com熱心網友回復:
(LPSTR)(LPCSTR)struj5u.com熱心網友回復:
你可以用以下函式互轉:MultiByteToWideChar
WideCharToMultiByte
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/133308.html
標籤:基礎類
下一篇:關于程式的管理員權限問題
