⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 19.7.3 根据序号访问 dll中的导出函数.txt

📁 网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读
💻 TXT
字号:
19.7.3 根据序号访问 DLL中的导出函数 
前面已经提过,在访问动态链接库时,除了使用导出函数的名称以外,还可以根据导出函数的序号来访问该函数。而 GetProcAddress函数的第二个参数是指向常量的字符指针 ( LPCSTR),那么如何把 int类型的序号转换为 LPCSTR类型的变量呢?这需要调用本书前面章节已经介绍过的 MAKEINTRESOURCE宏,该宏将会把指定的函数序号转换为相应的函数名字字符串。通过图 19.20,可以看到 add函数的序号为 1。因此,修改 Dl1Test程序中调用 GetProcAddress函数的那条代码,结果就是如例 19-27所示代码中加灰显示的那条代码。 
1Jtl19-27 

void CDIITestDlg::OnBtnAdd() 
1 . // TODO: Add your control notification handler code here 
2. H工 NSTANCE hlnst; 
3 . hlnst=LoadLibrary ( "Dll3 . dll" ) ; 

4 . typedef int (/*_stdca11*/ *ADDPROC) (int a , int b); 


5. ADDPROC Add= (ADDPROC) GetProcAddress (hInst , MAKE工 NTRESOURCE(1)) ; 

6. if( ! Add) 

7. { 


8. MessageBox ( "获取函数地址失败!" ) ; 
"‘ I 729 
第 19 

9. return; 

10. } 

11. CString str; 


12 . str. Forrnat (" 5+3=宅 d" , Add ( 5 , 3 ) ) ; 

13 . MessageBox(str); 


Build井运行 DllTest程序,然后单击【 Add】按钮,可以发现程序调用成功。
虽然可以利用函数序号来访问 DLL提供的导出函数,但是在实际编程时,建议读者还是应该使用函数名称来访问 DLL的函数,这样不容易出错。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -