http://www.csdn.net/expert/topic/554/554613.xml

解决方案 »

  1.   

    HMODULE handle = LoadLibrary("user32.dll");
    if(handle != NULL)
    {    typedef (BOOL)(WINAPI MyFunc)(HWND hwnd,COLORREF crKey, BYTE bAlpha,DWORD dwFlags );    MyFunc* pFun = GetProcAddress(handle,"SetLayeredWindowAttributes");
         if(pFun != NULL)
         {
             (*pFun)(hWnd........................//调用你的函数     } 
         FreeLibrary(handle);
    }
      

  2.   

    注意一点,通常的函数都有两种形态一个是ANSI一个是WIDECHAR
    比如SetWindowTextA和SetWindowTextW正常情况下编译器根据以下宏来判断你的SetWindowText函数最终调用A还是W#ifdef UNICODE
    #define SetWindowText SetWindowTextW
    #else
    #define SetWindowText SetWindowTextA
    #endif // !UNICODE
    而你GetProcAddress时候就必须自己指定W或A了
      

  3.   

    这个函数是标准的Win32api,你如果是用wizard建立的工程,应该可以编译通过。如果不是,就手动添加:#pragma comment(lib,"user32.lib")
      

  4.   

    这个问题我已经解决:
    通过安装最新的psdk更新了windows.h winuser.h两个头文件定义#define _WIN32_WINNT 0x0500
    #define WINVER 0x0500即可编译通过
    多谢大家的支持和关心
    散分了!!!!!!!!!!!!!!