使用::TransparentBlt(pDC->m_hDC, x, y,
                    bm.bmWidth,bm.bmHeight,        
                    dcMem.m_hDC, 0, 0,
                     bm.bmWidth, bm.bmHeight, RGB(255, 0, 255));
时编译不能通过,错误如下:--------------------Configuration: saaa - Win32 Debug--------------------
Linking...
MyButton.obj : error LNK2001: unresolved external symbol __imp__TransparentBlt@44
Debug/saaa.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.saaa.exe - 2 error(s), 0 warning(s)很多时候我使用API函数都出现类似的错误,这到底是什么原因?

解决方案 »

  1.   

    看msdn,
    你要包含头文件Wingdi.h 和 Windows.h.
    然后 project\setting\link里面的ojbect&library modules加入 Gdi32.lib.
      

  2.   

    在菜单"Project"->"Settings"的"Link"页中的"Object/Library Modules"中加入"msimg32.lib"试试.
      

  3.   

    你的PLATFORM SDK太老,这个函数需要最新的PLATFORM SDK的支持。
    如果没有SDK,可以这样调用:
    typedef BOOL (WINAPI *PTB)
    (HDC, int,int,int,int,HDC, int, int,int,int,UINT);
    PTB pTransparentBlt;
    HMODULE hDLL = LoadLibrary ("Msimg32.dll");
    pTransparentBlt = (PTB) GetProcAddress(hDLL,"TransparentBlt");
    pTransparentBlt(pDC->m_hDC, x, y,
                        bm.bmWidth,bm.bmHeight,        
                        dcMem.m_hDC, 0, 0,
                         bm.bmWidth, bm.bmHeight, RGB(255, 0, 255));