專注C++技術 在這里寫下自己的學習心得 感悟 和大家討論 共同進步(歡迎批評!!!)
由于是通過指針調用 DLL 函數并且沒有編譯時類型檢查,需確保函數的參數是正確的,以便不會超出在堆棧上分配的內存和不會導致訪問沖突。幫助提供類型安全的一種方法是查看導出函數的函數原型,并創建函數指針的匹配 typedef。例如:
調用 GetProcAddress 時指定所需函數的方式取決于 DLL 的生成方式。
僅當要鏈接到的 DLL 是用模塊定義 (.def) 文件生成的,并且序號在 DLL 的 .def 文件的 EXPORTS 部分中與函數一起列出時,才能獲取導出序號。如果 DLL 具有許多導出函數,則相對于使用函數名,使用導出序號調用 GetProcAddress 的速度稍快一些,因為導出序號是 DLL 導出表的索引。使用導出序號,GetProcAddress 可直接定位函數,而不是將指定名稱與 DLL 導出表中的函數名進行比較。但是,僅當有權控制 .def 文件中導出函數的序號分配時,才應使用導出序號調用 GetProcAddress。
Copyright @ @王一偉 Powered by: .Text and ASP.NET Theme by: .NET Monster