看板 C_Sharp 關於我們 聯絡資訊
目前在練習指標的用法 有一個地方卡住了,想請問各位的解法 一開始定義了 public unsafe gdi32.BITMAPINFO* m_pBmpInfo; 然後在練習的程式中C++裡面是這樣寫 m_pBmpInfo = (BITMAPINFO*)new BYTE[(sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD))]; 請問可不可以教我該如何去做相同的事情呢 ? 最近在學習 C# 請各位鞭小力點 QAQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.64.62 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1454394764.A.4E0.html
Litfal: 如果你是剛從C來C#的,第一件事要習慣沒指標可用 02/03 08:00
Litfal: 不是做不到,而是在C#裡面不應該把直接指標當常態 02/03 08:02
Litfal: 至於怎麼用...那得先請問你要做什麼呢?看你的code是想用 02/03 08:05
Litfal: gdi32的pinvoke,那通常是用IntPtr。不過在C#更常直接用 02/03 08:07
Litfal: Bitmap類 02/03 08:08
yeo1987: 使用Marshal.AllocXXX配置記憶體,使用完用對應方法釋放 02/03 22:48
yeo1987: ,或著用GCHandle.Alloc Pinned住,使用完釋放。再者... 02/03 22:48
yeo1987: 可以直接用P/Invoke Call對應方法。 02/03 22:48