[問題] *handle的用法?
小弟是C++剛入門的新手,最近在研究一個呼叫DLL的程式,
爬了文也google過,想了很久但還是有些地方不太了解。
希望各位大大給點意見.
程式碼:
typedef void *DEV_HANDLE; //line 1
DEV_HANDLE WINAPI Device_xOpen(const int nDevIndex); //line 2
typedef DEV_HANDLE (WINAPI *LP_DevOpen)(const int nDevIndex,
const char *pDevName); // line 3
DEV_HANDLE m_hLink; // line 4
LP_DevOpen m_Open; // line 5
m_Open = (LP_DevOpen)::GetProcAddress(hDLL, "Device_xOpen"); // line 6
m_hLink = m_Open(0, ""); // line 7
if (m_hLink){ ......} // line 8
疑問:
1. DEV_HANDEL為指標型式,所以 line 2 的意思是函式Device_xOpen的回傳值
是一個位址嗎?
2. 如果"函式Device_xOpen的回傳值是一個位址",
那為何line 7, line 8 看起來 m_hLink 是一個值?
3. Device_xOpen函式的輸入值只有一個nDevIndex,
經過了line 3, line 6可以多出一個pDevName的原因是?
pDevName在原本的Device_xOpen沒有,它代表的是甚麼呢?
4. 雙冒號::是用在表示Class裡的函式或是變數,
但line 6 中的(LP_DevOpen)::GetProcAddress雙冒號的用意是?
5. 雙冒號::另一問,程式碼:
HINSTANCE hInst = ::LoadLibrary ( “HIDKey.dll” );
這裡的雙冒號的用意是?
C++真的比想像中的還有學問 >_<
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.184.78
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1407945828.A.E14.html
推
08/14 00:07, , 1F
08/14 00:07, 1F
→
08/14 00:08, , 2F
08/14 00:08, 2F
推
08/14 00:08, , 3F
08/14 00:08, 3F
→
08/14 00:09, , 4F
08/14 00:09, 4F
※ 編輯: sv39933993 (111.250.184.78), 08/14/2014 00:16:40
→
08/14 00:21, , 5F
08/14 00:21, 5F
→
08/14 00:24, , 6F
08/14 00:24, 6F
推
08/14 02:01, , 7F
08/14 02:01, 7F
推
08/14 05:46, , 8F
08/14 05:46, 8F
→
08/14 05:46, , 9F
08/14 05:46, 9F
→
08/14 05:47, , 10F
08/14 05:47, 10F
→
08/14 10:11, , 11F
08/14 10:11, 11F
→
08/14 10:16, , 12F
08/14 10:16, 12F
→
08/14 10:18, , 13F
08/14 10:18, 13F
推
08/14 14:49, , 14F
08/14 14:49, 14F
→
08/14 14:50, , 15F
08/14 14:50, 15F
推
08/14 15:44, , 16F
08/14 15:44, 16F
推
08/14 22:47, , 17F
08/14 22:47, 17F
→
08/14 22:47, , 18F
08/14 22:47, 18F
→
08/16 22:09, , 19F
08/16 22:09, 19F
討論串 (同標題文章)