第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

OpenGL的glClear()在Windows 64中導(dǎo)致訪問沖突(0xc0000005)

OpenGL的glClear()在Windows 64中導(dǎo)致訪問沖突(0xc0000005)

Go
犯罪嫌疑人X 2021-04-30 14:19:22
看一下用Go編寫的這個超級簡單的小型測試用例OpenGL程序:package mainimport (    "runtime"    "./glfw"    gl "github.com/chsc/gogl/gl21")func onExit (err error) {    glfw.Terminate()    if err != nil { panic(err) }}func main () {    runtime.LockOSThread()    err := glfw.Init()    if err != nil { panic(err) }    err = glfw.OpenWindow(1280, 720, 0, 0, 0, 0, 0, 0, glfw.Windowed)    if err != nil { onExit(err) }    err = gl.Init()    if err != nil || gl.GetError() != 0 { onExit(err) }    for glfw.WindowParam(glfw.Opened) == 1 {        gl.Viewport(0, 0, 1280, 720)        gl.ClearColor(1, 0, 0, 1)        gl.Clear(gl.COLOR_BUFFER_BIT) // THE CRASH        gl.Begin(gl.TRIANGLES)        gl.Color3f(1, 0, 0)    在帶有Go 1.0.1 64位的Windows 7 64位下,這可以很好地構(gòu)建。如果您取出(或注釋掉)gl.Clear(gl.COLOR_BUFFER_BIT)行,它也可以很好地工作(OpenGL繪制一個彩虹的2D三角形,直到關(guān)閉窗口)?,F(xiàn)在,有幾點值得注意的要點...所述GLFW包是一個簡單的定制包裝暴露的確切相同的API github.com/jteeuwen/glfw但內(nèi)部使用的LoadLibrary / GetProcAddress的用于使用glfw.dll而不是編譯時CGO / GCC / LD聯(lián)-因為后者不能被可悲的是,它無法在64位Windows上運行,不確定是否應(yīng)該責(zé)怪mingw64或gcc或cgo。使用LoadLibrary / GetProcAddress調(diào)用我的glfw.dll的自定義64位版本時,可以正常工作。顯然,這里的問題是調(diào)用gl軟件包,而不是glfw。該GL包確實只是這一次,修改。我嘗試了一些LDFLAGS修改,例如-m64 -lmingw32 -Wl,/ windows / opengl32.dll等。但是沒有區(qū)別,只要不調(diào)用gl.Clear(),原始修改的效果就和修改的效果一樣好,所以我恢復(fù)了原來的狀態(tài)。當(dāng)然,稍后我將繼續(xù)使用OpenGL 4.2。使用Process Explorer,我可以看到我的進(jìn)程是64位的,并且所有加載的DLL也是64位的映像(包括opengl32.dll和glfw.dll)?!?gl21軟件包可能無法獲得由opengl32.dll導(dǎo)出的glClear()函數(shù)的有效地址嗎?” -不太可能:根據(jù)第2926行,如果是這種情況,我對gl.Init()的調(diào)用將失敗。GPU驅(qū)動程序有問題嗎?甚至更不可能。已安裝最新的官方nVidia Quadro 5010M驅(qū)動程序296.35。也嘗試過“性能驅(qū)動程序”,但無論如何似乎都是完全相同的驅(qū)動程序。根據(jù)nVidia控制面板提供的完全OpenGL 4.2支持(盡管opengl32.dll的日期為2009年-無論如何,我目前定位的目標(biāo)是2.1)。另外,“ Geeks3D GPU Caps Viewer”和“ Shader Toy Mark”中的OpenGL著色器也可以運行,GLFW示例程序particles.exe也可以運行-它們?nèi)恳彩褂胓lClear()。當(dāng)使用gl42而不是gl21時,會發(fā)生完全相同的問題,因此也不是原因。請注意在此示例中所有其他gl.SomeExportedFunc()調(diào)用如何不會崩潰...怎么辦,如何進(jìn)行?如果只發(fā)生在gl.Clear()上并且沒有其他功能,我可以忍受這一點-無論如何我都只能渲染具有自定義內(nèi)容的全屏四邊形-但是我在這里測試Win64相當(dāng)早(很多gl42代碼在Linux64下都可以正常工作,現(xiàn)在即將“移植”到Win64),我擔(dān)心以后再進(jìn)行其他調(diào)用會暴露出同樣的問題,因此,我現(xiàn)在進(jìn)行報告。我很快就會發(fā)現(xiàn)還有哪些其他電話受到此影響。
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊

沒有CGO生成的存根,就不能調(diào)用C函數(shù)。


查看完整回答
反對 回復(fù) 2021-05-10
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊

最新版本的Go,GLFW和Mingw-w64不再是問題。


查看完整回答
反對 回復(fù) 2021-05-10
  • 2 回答
  • 0 關(guān)注
  • 786 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號