动态链接库的制作及调用有关问题
动态链接库的制作及调用问题
想制作一个返回多个数值的动态库,
所以做了如下的小程序调试了下:
库文件中内容如下:
void _stdcall multiply(int a,int b,int c,int d)
{
c=a*b;
d=a+b*b;
return;
}
生成动态库后,对其进行调用:
int a=50;
int b=2;
int c;
int d;
HINSTANCE hInst=LoadLibrary("Dll2.dll"); //动态库名字为Dll2
typedef void (_stdcall *MULPROC)(int a,int b,int c,int d);
MULPROC Mul=(MULPROC)GetProcAddress(hInst,"multiply");
if(!Mul)
{
MessageBox("获取函数地址失败!");
return;
}
int Result=c*d; //调用动态库得出c,d后相乘
但是,一运行,就是 获取函数地址失败!,怎么回事?
------解决方案--------------------
一是没有导出函数,二是void _stdcall multiply(int a,int b,int c,int d)
也不对,void _stdcall multiply(int a,int b,int &c,int &d)
------解决方案--------------------
同意楼上的
想制作一个返回多个数值的动态库,
所以做了如下的小程序调试了下:
库文件中内容如下:
void _stdcall multiply(int a,int b,int c,int d)
{
c=a*b;
d=a+b*b;
return;
}
生成动态库后,对其进行调用:
int a=50;
int b=2;
int c;
int d;
HINSTANCE hInst=LoadLibrary("Dll2.dll"); //动态库名字为Dll2
typedef void (_stdcall *MULPROC)(int a,int b,int c,int d);
MULPROC Mul=(MULPROC)GetProcAddress(hInst,"multiply");
if(!Mul)
{
MessageBox("获取函数地址失败!");
return;
}
int Result=c*d; //调用动态库得出c,d后相乘
但是,一运行,就是 获取函数地址失败!,怎么回事?
------解决方案--------------------
一是没有导出函数,二是void _stdcall multiply(int a,int b,int c,int d)
也不对,void _stdcall multiply(int a,int b,int &c,int &d)
------解决方案--------------------
同意楼上的