CBitmap qwe;
qwe.LoadBitmapW(IDB_BITMAP1);
yy[1].brush.CreatePatternBrush(&qwe); // 必須加 &
錯誤:無法從 CBitmap 轉換為 CBitmap*
CreatePatternBrush(CBitmap*) 參數型別是「指向 CBitmap 的指標」。qwe 是 CBitmap 物件(值語意),非指標。&qwe 取得物件在記憶體中的位址,型別為 CBitmap*,滿足參數要求。qwe 位址為 0x00000001,直接呼叫 CreatePatternBrush(0x00000001) 在底層完全合法(編譯器可能警告型別不符,但機器碼可行)。& 運算子明確表達「取址」意圖,避免誤傳整個物件副本或整數常數。「必須取址才能配合指標使用」在語法規範上正確;在底層本質上,指標只是儲存位址的整數,若能確保位址正確,直接傳數值也可執行。請遵循語法規範,老實寫 &qwe。