关于调用dll函数的问题?请指教!谢谢
grit 2002-04-02 11:00:07 我写了一个dll,在另一个程序中调用dll中的函数时,发现static linking 可以,
而dynamic linking 不行,GetProcAddress老返回null值,请问如何处理?
谢谢!
源码如下:
/*
//静态链接
#include "dialdll.h"
...
int rel;
rel=0;
rel=pbdial("163","163","163");
if (rel == 0 )
{
AfxMessageBox("连接成功!");
//m_message="OK!";
//m_returnCode = deRet;
}
else
{
AfxMessageBox("连接失败!");
}
*/
//动态链接
typedef DWORD (*FPBDIAL) (LPCTSTR,LPCTSTR,LPCTSTR);
HINSTANCE hDLL=NULL; // Handle to DLL
FPBDIAL fpbdial; // Function pointer
int uReturnVal;
hDLL = LoadLibrary("dialdll.dll");
if (hDLL != NULL)
{
fpbdial = (FPBDIAL)GetProcAddress(hDLL,
"pbdial");
//fpbdial 老为NULL
if (!fpbdial)
{
AfxMessageBox("fail!");
// handle the error
FreeLibrary(hDLL);
}
else
{
// call the function
uReturnVal=fpbdial("163","163","163");
if (uReturnVal == 0 )
{
AfxMessageBox("连接成功!");
//m_message="OK!";
//m_returnCode = deRet;
}
else
{
AfxMessageBox("连接失败!");
}
}
}