程序编译如下:
> 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.
外部库已引入,为什么会有问题?

解决方案 »

  1.   

    动态连接库(dll)中,有dll和lib,请问lib是dll的什么呢?
    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.   

    把库文件加到工程中,有两种方法1 在wordsapce -->fileView, 加入
    2 alt + f7-->Link, 在Object/library modules:下的编辑框加入LIB名