2 cmjff cmjff 于 2016.04.14 15:41 提问

DLL显式加载后,得到了DLL内的导出函数地址,但是调用的时候出现了0X00000005

如题,DLL加载内内存都没有问题,调用GetProcAddress也返回了正常的地址,但是偏偏调用时就出错了,请问如果是DLL加壳或者内部有算法会导致这样的问题吗?
strcpy_s(macRountineName,sizeof(macRountineName),"fnRequestOperation");
if (hinstLib == NULL)
hinstLib = LoadLibrary(TConvert::StrToTStr(mLibraryName).c_str());

    if (hinstLib != NULL)
    {
        SpoGetKey = (REQPROC)GetProcAddress(hinstLib,macRountineName);
    }
    hSecurity = SpoGetKey(lMus_Seed, wAlgorithm, &lMus_Key, wCkSum);

大致代码如上,我单步调试到hSecurity的时候,该值为0x00000005 Aceess is denied
请问这是什么问题啊?求大神,我都查了两天了。

2个回答

CSDNXIAOD
CSDNXIAOD   2016.04.14 15:53

一个获取dll导出函数的模板类
VC++编写DLL导出函数及其调用方法
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq423399099
qq423399099   Ds   Rxr 2016.04.14 16:07

指针的非法访问,比如你向一个不能修改的区域进行了写操作,越界访问了,操作了NULL指针等等

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!