如图,里面的_getd@16应该怎么调用呢? 我花了一晚上想都想不出. 用了动态调用不行. 得到函数的地址然后调用也不行,找了些资料, 看到vb可以使用Alias可以调用,我也试了 但是还是以失败告终. 那个DLL不是我的, 我记得以前我也有问过类似的问题, dll的作者他说是什么未导出的函数什么来着, 我也忘了. 现在那个作者2年没上了 - -,哎 只能怪当时不认真吧. 现在请问各位应该怎么去调用这个DLL里的那个_getd@16函数呢? 什么语言都行, 但最好是vb6或者delphi7 不是也无差- -! 急知道..
解决方案 »
- 求助,进来看一下:VS2008中如何引用 DATAGRID控件?
- 一个dll要导出class,exe里面包含相应的.h不就行了么,为何需要AFX_EXT_CLASS?
- 一个程序第一次运行没有出错,第二次运行也没有出错,在多次运行后出错了,为什么?
- 对话框之间的通信
- 菜鸟问题,怎么生成avi文件??
- [文件打包]有什么好的代码?实现读写一个打包文件?
- 昨晚看MATRIX3的一点理解,与大家探讨
- 请问用什么对象捕捉这个异常,简单送分阿
- 请问如何才能创建快捷方式和程序组?
- 用MFC实现打印功能,能否直接打印而不弹出打印对话框。如何实现?
- 关于FormView
- 求助:在MFC怎么向服务器发送图片或数据?
typedef void (*DllFoo)(void);int main(int argc, char *argv[])
{
DllFoo _DllFoo;
HINSTANCE hInstLibrary = LoadLibrary( "mydll.dll ");
if (hInstLibrary == NULL)
{
cout < < "载入dll失败 " < <endl;
FreeLibrary(hInstLibrary);
system( "pause ");
return 1;
}
_DllFoo = (DllFoo)GetProcAddress(hInstLibrary, "DllFoo ");
if(_DllFoo == NULL)//运行后程序进入这里,显示“转换失败”后结束
{
cout < < "转换失败 " < <endl;
FreeLibrary(hInstLibrary);
system( "pause ");
return 1;
}
//以下程序没有运行
DllFoo();
cout < <endl;
FreeLibrary(hInstLibrary);
system( "PAUSE ");
return EXIT_SUCCESS;
}
不过你那个dll函数的参数要自己想办法了
Declare Function getd Lib "xxx.dll" Alias "_getd@16" (ByVal Param1 As Long, ByVal Param2 As Long, ByVal Param3 As Long, ByVal Param4 As Long) As Long