我想将一些(dll或不)函数指针作为参数传递给某些dll函数,并从dll内部调用它们.我想知道它是否安全,因为我在
http://publib.boulder.ibm.com/infocenter/zos/v1r10/index.jsp?topic=/com.ibm.zos.r10.cbcpx01/fpref.htm上找到了一条信息:
在DLL代码中,假设函数指针指向函数描述符.通过首先通过解引用指针获得函数地址来进行函数指针调用;然后,分支到函数入口.当非DLL函数指针传递给DLL代码时,它直接指向函数入口.尝试通过这样的指针取消引用会产生未定义的函数地址.随后分支到未定义的地址可能会导致异常.
此规则是否也适用于Visual Studio和其他编译器?
我正在尝试做的是解决各种dll和非dll函数之间的内存分配和释放问题.我的想法是将两个函数指针(用于公共分配和解除分配函数)传递给某些初始化中的每个dll(例如,Initialize(& malloc,& free)),然后使用这些常见且因此始终兼容的函数进行所有内存管理.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。