0

我在 dll 中的函数中获取垃圾值。

在 FUNC1(int) 我得到垃圾值,有什么帮助吗?

.h 的 dll

class __declspec(dllexport) Class1
    {
    public:
          bool __stdcall FUNC1(int);
}

FUNC1 定义

bool Class1::FUNC1(int i)
{
//here im getting i as some garbage value
   (500==i) ? return true: return false;
}

这就是我调用 FUNC1 的方式

FARPROC lpfnGetProcessID = GetProcAddress(HMODULE (hGetProcIDDLL),FUNC1); 
        if(lpfnGetProcessID == NULL) 
        {
            return false;
        }

        typedef int (__stdcall * pICFUNC)(int);
        pICFUNC dllFunc;
        dllFunc = pICFUNC(lpfnGetProcessID); 

        int op = dllFunc(500);
4

1 回答 1

0

FUNC1 被声明为函数,但定义是“类”的方法。由于它们不匹配,因此实现将期望在堆栈上有一个 this 指针和一个参数。调用者只推送 i 参数,实现将在不正确的内存位置查找它。

于 2013-08-23T20:58:27.990 回答