这两天写一个程序要动态加载( LoadLibary() )一个DLL库(也是自己写的),总是不成功。不太熟悉这一块,所以花了几天的时间,很折腾。
总结一些,LoadLibary()装载的dll如果有一些全局变量,则加载的时候可能会因为这些全局变量的构造而不成功,但是源程序中不容易注意到,这些初始化是在DllMain()之前被执行的。用GetLastError()得到错误码998,表示“内存分配访问无效”。
最好从最精简的dll版本开始load,逐步增加功能,这样容易知道是那个变量的构造出了问题。
本文分享了作者在使用LoadLibrary()动态加载自定义DLL过程中遇到的问题及解决思路。当DLL含有全局变量时,可能会因构造过程导致加载失败并返回错误码998。建议从最简单的DLL版本开始逐步调试。
1万+

被折叠的 条评论
为什么被折叠?



