在AddDLL.dll中我这样定义的:
extern "C" __declspec(dllexport) int _stdcall AddDLL(int x,int y);
int _stdcall AddDLL(int x,int y)
{
return x+y;
}
在AddExeDlg.cpp中我是这样定义的:
void CAddExeDlg::OnOK()
{
UpdateData();
int x=atoi(m_edit1);
int y=atoi(m_edit2);
UpdateData(true);
HINSTANCE hinst;
hinst=LoadLibrary("AddDLL.dll");
if(hinst==NULL)
{
DWORD errCode=GetLastError();
CString tt;
tt.Format("%d",errCode);
AfxMessageBox(tt);
return;
}
typedef int (FAR __cdecl *FUN)(int x,int y);
FUN fun=(FUN)GetProcAddress(hinst,"AddDLL");
if(GetProcAddress(hinst,"AddDLL")==NULL)
{
AfxMessageBox("fail");
return;
}
int z=fun(x,y);
FreeLibrary(hinst);
CString str;
str.Format("%d",z);
m_edit3=str;
UpdateData(false);
// CDialog::OnOK();
}
我已经将AddDLL.dll拷贝到AddExeDlg.h同级目录了
可总是弹出对话框 "fail"
extern "C" __declspec(dllexport) int _stdcall AddDLL(int x,int y);
int _stdcall AddDLL(int x,int y)
{
return x+y;
}
在AddExeDlg.cpp中我是这样定义的:
void CAddExeDlg::OnOK()
{
UpdateData();
int x=atoi(m_edit1);
int y=atoi(m_edit2);
UpdateData(true);
HINSTANCE hinst;
hinst=LoadLibrary("AddDLL.dll");
if(hinst==NULL)
{
DWORD errCode=GetLastError();
CString tt;
tt.Format("%d",errCode);
AfxMessageBox(tt);
return;
}
typedef int (FAR __cdecl *FUN)(int x,int y);
FUN fun=(FUN)GetProcAddress(hinst,"AddDLL");
if(GetProcAddress(hinst,"AddDLL")==NULL)
{
AfxMessageBox("fail");
return;
}
int z=fun(x,y);
FreeLibrary(hinst);
CString str;
str.Format("%d",z);
m_edit3=str;
UpdateData(false);
// CDialog::OnOK();
}
我已经将AddDLL.dll拷贝到AddExeDlg.h同级目录了
可总是弹出对话框 "fail"
{
return x+y;
}
extern "C" __declspec(dllexport) int _stdcall AddDLL(int x,int y)
{
return x+y;
}typedef int (_stdcall *FUN)(int x,int y);