调用dll有好几种方法,我想问一下我生成dll的时候,用的是在def文件中定义导出函数的方法:
MysquareRoot @1 NONAME
dll文件名是,mypj.dll。
但是,我不知道在测试工程里,引用我的导出函数的步骤是什么?
谢谢大家。
MysquareRoot @1 NONAME
dll文件名是,mypj.dll。
但是,我不知道在测试工程里,引用我的导出函数的步骤是什么?
谢谢大家。
调试欢乐多
然后把mypj.lib加入到你的工程当中。
2.先LoadLibrary,加载目标DLL
3.然后GetProcAddress取函数地址
4.然后就可以调用了
kugou123所说的我还没成功:请大家帮我看看我那个地方有问题:
dll的函数定义;
double MyDelete(double d, double e)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
TRACE("begin\n");
return (d - e);
AfxMessageBox("error input");
return 0.0;
}
def文件定义:
EXPORTS
; 明示的なエクスポートはここへ記述できます
MyDelete @1
调用dll。
void CMynewd::OnDel()
{
typedef double (*MyDelete)(double a, double b);
HINSTANCE hDLL;
UpdateData(TRUE);
MyDelete mydelete;
hDLL = LoadLibrary("D:\Test\mypj1\Debug\mypj1.lib");
mydelete=(MyDelete)GetProcAddress(hDLL,"MyDelete");
m_result = mydelete(m_begin,m_end);
UpdateData(FALSE);
FreeLibrary(hDLL);
}
结果没有成功,什么原因呢?