我自己编写了一个动态链接库,这个DLL实现了一个类和该类的若干方法,为了简洁和不暴露借口,我用def文件控制DLL输出了一个返回该类的指针的方法。
就是这个样子:
dll1* CreateInstance(){
return new dll1;
}
然后在调用DLL的工程中加入了 dll1的头文件。接下来在main函数里加入下面的代码。
typedef void * (* DLLCREATEFUNC)(void);
HINSTANCE hd;
hd=LoadLibrary("d1.dll");
if (hd==NULL)
{
printf("fail load");
return 0;
}
DLLCREATEFUNC createIns;
createIns=(DLLCREATEFUNC)GetProcAddress(hd,"CreateInstance");
dll1*dd;
dd=(dll1*)DLLCREATEFUNC();
dd->out();//就是这个函数error LNK2019
链接的时候会报错error LNK2019: 无法解析的外部符号 "public: void __thiscall dd1::out(void)" (?out@dd1@@QAEXXZ),该符号在函数 _main 中被引用.
试了好几天了,一直没有解决,我很困扰啊,哪位高手能指点一下。
就是这个样子:
dll1* CreateInstance(){
return new dll1;
}
然后在调用DLL的工程中加入了 dll1的头文件。接下来在main函数里加入下面的代码。
typedef void * (* DLLCREATEFUNC)(void);
HINSTANCE hd;
hd=LoadLibrary("d1.dll");
if (hd==NULL)
{
printf("fail load");
return 0;
}
DLLCREATEFUNC createIns;
createIns=(DLLCREATEFUNC)GetProcAddress(hd,"CreateInstance");
dll1*dd;
dd=(dll1*)DLLCREATEFUNC();
dd->out();//就是这个函数error LNK2019
链接的时候会报错error LNK2019: 无法解析的外部符号 "public: void __thiscall dd1::out(void)" (?out@dd1@@QAEXXZ),该符号在函数 _main 中被引用.
试了好几天了,一直没有解决,我很困扰啊,哪位高手能指点一下。