如何显式链接dll
srgzf 2011-03-30 03:52:24 我做了个dll,里面有个函数
int InitDll(PBYTE in_Y,PBYTE in_U,PBYTE in_V,int width,int height,int quality,int nStride)
{
return 100 ;
}
int fun(int i)
{
return i*i ;
}
制作好dll后,在应用程序中调用
PBYTE *in_Y = new PBYTE[0x420 * 0x1b0];
PBYTE *in_U = new PBYTE[0x420 * 0x1b0 / 4];
PBYTE *in_V = new PBYTE[0x420 * 0x1b0 / 4];
PBYTE *pData = new PBYTE[0x420 * 0x1b0];
m_hdll = ::LoadLibrary("test.dll");
typedef int (*PFUN)(int,int);//声明函数原型
typedef int (*InitDll)(PBYTE,PBYTE,PBYTE,int,int,int,int);//声明函数原型
PFUN newfun = (PFUN)::GetProcAddress(m_hdll,"add");//取得fun函数的地址
InitDll InitDll1 = (InitDll)::GetProcAddress(m_hdll,"InitDll");//取得InitDll函数的地址
int i = newfun(2,6);
int X=InitDll1(in_Y,in_U,in_V,100,100,100,100) ;
编译并调试
该语句编译出错 int X=InitDll1(in_Y,in_U,in_V,100,100,100,100) ;
如去掉该该语句,测 int i = newfun(2,6);运行正常,
那外该如何声明并应用呢