这两天写一个程序要动态加载( LoadLibary() )一个DLL库(也是自己写的),总是不成功。不太熟悉这一块,所以花了几天的时间,很折腾。
总结一些,LoadLibary()装载的dll如果有一些全局变量,则加载的时候可能会因为这些全局变量的构造而不成功,但是源程序中不容易注意到,这些初始化是在DllMain()之前被执行的。用GetLastError()得到错误码998,表示“内存分配访问无效”。
最好从最精简的dll版本开始load,逐步增加功能,这样容易知道是那个变量的构造出了问题。