[問題] shared memory CreateFileMapping 限制

看板C_and_CPP (C/C++)作者 (just only you know)時間13年前 (2013/01/08 20:35), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC 2012 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 使用CreateFileMapping (INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE, 0, 640*480*3, L"XXXX"); 有拿到HANDLE 但是之後在做 memcpy_s()時, 在copy到第307184個byte時 就出現access violation 餵入的資料(Input): 預期的正確結果(Expected Output): 預期應該要copy完最後一個byte 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 看起來有點像是寫超過一個page的大小? 不太確定是不是 不知道有沒版友遇過這問題 另外, 有考慮過使用large page的方式, 如: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366543(v=vs.85).aspx 但是仍會在getlasterror()得到 1314的error code ERROR_PRIVILEGE_NOT_HELD 不知道有沒甚麼好的解決方式 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.163.84.235 ※ 編輯: fftsquall 來自: 118.163.84.235 (01/08 20:35)

01/09 00:38, , 1F
largepage 必須要通過系統權限才能使用
01/09 00:38, 1F

01/09 10:11, , 2F
我試過拿更大的 memory 也沒事...不過我用的參數是
01/09 10:11, 2F

01/09 10:12, , 3F
PAGE_READWRITE 你可以試試看
01/09 10:12, 3F
文章代碼(AID): #1Gx19tJj (C_and_CPP)
文章代碼(AID): #1Gx19tJj (C_and_CPP)