程序编译如下:
> Linking...
> mqtest.obj : error LNK2001: unresolved external symbol _MQDISC
> mqtest.obj : error LNK2001: unresolved external symbol _MQCLOSE
> mqtest.obj : error LNK2001: unresolved external symbol _MQPUT
> mqtest.obj : error LNK2001: unresolved external symbol _MQOPEN
> mqtest.obj : error LNK2001: unresolved external symbol _MQCONN
> Debug/mqtest.exe : fatal error LNK1120: 5 unresolved externals
> Error executing link.exe.
外部库已引入,为什么会有问题?
> Linking...
> mqtest.obj : error LNK2001: unresolved external symbol _MQDISC
> mqtest.obj : error LNK2001: unresolved external symbol _MQCLOSE
> mqtest.obj : error LNK2001: unresolved external symbol _MQPUT
> mqtest.obj : error LNK2001: unresolved external symbol _MQOPEN
> mqtest.obj : error LNK2001: unresolved external symbol _MQCONN
> Debug/mqtest.exe : fatal error LNK1120: 5 unresolved externals
> Error executing link.exe.
外部库已引入,为什么会有问题?
LIB文件是一个导入库。客户程序要使用DLL,只有导出声明还不够,这样
并不能使客户联接到DLL。客户的工程必须对链接程序指定LIB文件。这种
方式叫隐式链接。我们还可以用显式链接:调用LoadLibray函数,指定dll
路径。再用GetProcAdress就可以得到你想要调用得函数得地址了。1. 隐式链接:
Project->Setting->Link下,然后在下面的Object/Library modules中输入你链接
的lib文件;
或者
#pragma comment(linker,"fullfilename.lib");
2. 显式链接:
HMODULE hDLL = LoadLibrary(strFull);
typedef CGraphTool*(*FUN)();
FUN pfun;
pfun = (FUN)GetProcAddress(hDLL, "Initialize");
m_pCurTool = (*pfun)();
2 alt + f7-->Link, 在Object/library modules:下的编辑框加入LIB名