Re: [問題] 關於FARPROC及GetProcAddress的問題

看板C_and_CPP作者 (緣由天定分在人為)時間14年前 (2009/12/04 13:25), 編輯推噓3(3011)
留言14則, 2人參與, 最新討論串3/5 (看更多)
※ 引述《VictorTom (鬼翼&娃娃魚)》之銘言: ※ 引述《slgn0129 (緣由天定分在人為)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) : 遇到的問題: (題意請描述清楚) : HINSTANCE hDLL = LoadLibrary(TEXT("libGLESv2")); : FARPROC p2 = GetProcAddress(hDLL,"glCompileShader"); : void (*p)(GLuint); : p = (void (*) (GLuint)) p2; : p(shader); : hDLL有找到位址 : 但是p2卻是0x00000000 : 所以p就跟p2一樣 : 猜想可能是格式問題 但是不知道怎麼下手修改 : 希望得到的正確結果: : 能抓到p2的位址 : 程式跑出來的錯誤結果: : 存取違規(p=0x00000000) : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : VS2005 : 有問題的code: (請善用置底文標色功能) : FARPROC p2 = GetProcAddress(hDLL,"glCompileShader"); : 補充說明: : 如果有什麼應該要提供的資訊 小弟沒有提供的 : 請各位前輩說一下 : 請謝 恕刪... == 所以問題又回到原點了, 為什麼原po的GetProcAddress()會失敗啊?_? 可能是 我gl2platform.h 下面的定義 不是#define GL_APIENTRY 是#define GL_APIENTRY __stdcall 另外 GL_APICALL void GL_APIENTRY glCompileShader(GLuint shader) { HINSTANCE hDLL = LoadLibrary(TEXT("libGLESv2")); FARPROC p2 = GetProcAddress(hDLL,"glCompileShader"); void (*p)(GLuint); p = (void (*) (GLuint)) p2; p(shader); 要加的原因 是因為要跑programming guide裡面自訂的esfunction... http://www.opengles-book.com/OpenGL_ES_Programming_Guide_v1.0.2.zip 這是官方公開的範例下載 所以一開始我才會說 猜想是格式錯誤0.0 -- http://www.wretch.cc/blog/ZAS007 月下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.165.212

12/04 13:28, , 1F
應該不是platform那個, 那個我也是走到__stdcall, 它有
12/04 13:28, 1F

12/04 13:28, , 2F
一些#if的判斷, 但最後會落到__stdcall沒有錯, 晚點再拿
12/04 13:28, 2F

12/04 13:29, , 3F
你的sample跑跑看@_@"
12/04 13:29, 3F

12/04 13:30, , 4F
再說, 你的問題是連GetProcAddress都拿不回來, 所以還沒
12/04 13:30, 4F

12/04 13:30, , 5F
遇到Call Conv的問題才對@_@"
12/04 13:30, 5F

12/04 13:39, , 6F
有可能因為格式不一樣 所以找不到glxxx那個文字嗎
12/04 13:39, 6F

12/04 13:47, , 7F
不會, 你原文f大也提到這件事了, 你也可以想, 你在做
12/04 13:47, 7F

12/04 13:47, , 8F
GetProcAddress時根本沒讓它知道Call Conv是什麼@_@"
12/04 13:47, 8F

12/04 14:18, , 9F
我在我上一篇回文加了新的一段code, 就是照您說的抓那個
12/04 14:18, 9F

12/04 14:18, , 10F
Guide裡的Ch2那個Hello_Triangle的sample改的, 一樣是可
12/04 14:18, 10F

12/04 14:19, , 11F
以正常work, 所以您要不要再check一下或者直接放完整的
12/04 14:19, 11F

12/04 14:19, , 12F
code出來看算了....XDDD
12/04 14:19, 12F

12/04 14:44, , 13F
完整的檔案 是指讀每一個API的檔嗎@@?
12/04 14:44, 13F

12/04 14:45, , 14F
還是哪個code@@?
12/04 14:45, 14F
文章代碼(AID): #1B69rJT0 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B69rJT0 (C_and_CPP)