是一个用sdk写WIZARD97的程序,从MSDN中直接拷贝的,部分源码如下:BOOL CALLBACK IntroDlgProc (
                        HWND hwndDlg,
                        UINT uMsg,
                        WPARAM wParam,
                        LPARAM lParam
                        )
{
    //Process messages from the Welcome page    //Retrieve the shared user data from GWL_USERDATA    LPSHAREDWIZDATA pdata = (LPSHAREDWIZDATA) GetWindowDWORD_PTR(hwndDlg, GWL_USERDATA);    switch (uMsg)
    {
    case WM_INITDIALOG :
        { 
            //Get the shared data from PROPSHEETPAGE lParam value
            //and load it into GWL_USERDATA            pdata = (LPSHAREDWIZDATA) ((LPPROPSHEETPAGE) lParam) -> lParam;            SetWindowDWORD_PTR(hwndDlg, GWL_USERDATA, (DWORD_PTR)pdata);
            
            //It's an intro/end page, so get the title font
            //from  the shared data and use it for the title control            HWND hwndControl = GetDlgItem(hwndDlg, IDC_TITLE);
            SetWindowFont(hwndControl,pdata->hTitleFont, TRUE);
            break;
        }
    case WM_NOTIFY :
        {
        LPNMHDR lpnm = (LPNMHDR) lParam;        switch (lpnm->code)
            {            case PSN_SETACTIVE : //Enable the Next button    
                PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT);
                break;            case PSN_WIZNEXT :
                //Handle a Next button click here
                break;            case PSN_RESET :
                //Handle a Cancel button click, if necessary
                break;
            default :
                break;
            }
        }
        break;    default:
        break;
    }
    return 0;
}
运行时显示:
--------------------Configuration: Wizard97 - Win32 Debug--------------------
Compiling...
Wiz97.cpp
G:\LANSZ\VC\Wizard97\Wiz97.cpp(128) : error C2065: 'DWORD_PTR' : undeclared identifier
G:\LANSZ\VC\Wizard97\Wiz97.cpp(128) : error C2146: syntax error : missing ')' before identifier 'pdata'
G:\LANSZ\VC\Wizard97\Wiz97.cpp(128) : error C2059: syntax error : ')'
G:\LANSZ\VC\Wizard97\Wiz97.cpp(191) : error C2146: syntax error : missing ')' before identifier 'pdata'
G:\LANSZ\VC\Wizard97\Wiz97.cpp(191) : error C2059: syntax error : ')'
G:\LANSZ\VC\Wizard97\Wiz97.cpp(307) : error C2146: syntax error : missing ')' before identifier 'pdata'
G:\LANSZ\VC\Wizard97\Wiz97.cpp(307) : error C2059: syntax error : ')'
G:\LANSZ\VC\Wizard97\Wiz97.cpp(368) : error C2146: syntax error : missing ')' before identifier 'pdata'
G:\LANSZ\VC\Wizard97\Wiz97.cpp(368) : error C2059: syntax error : ')'
Error executing cl.exe.Wizard97.exe - 9 error(s), 0 warning(s)请问这是什么原因产生的,我用的是windows98和IE6.0

解决方案 »

  1.   

    'DWORD_PTR' 没有定义!
    怀疑是你有什么LIB库没有连接(LINK)。
      

  2.   

    这是编译错,不是连接错。是少包含一个头文件了,不过我找遍了VC目录都没有发现有定义DWORD_PTR的地方,MSDN中倒是有提到这个类型:DWORD_PTR Unsigned long type for pointer precision. Use when casting a pointer to a long type to perform pointer arithmetic. 不会是VC忘记提供了吧?你把这个换为LONG应该就可以了,我想它也就是LONG的一个别名而已。
      

  3.   

    DWORD_PTR 是用于编译64位Windows程序时的指针类型。如何编译64Bit程序查
    MSDN就知道了。具体的急不清了,好像要加入 win64_nt.h这个头文件
      

  4.   

    DWORD_PTR 是用于编译64位Windows程序时的指针类型。如何编译64Bit程序查
    MSDN就知道了。具体的急不清了,好像要加入 win64_nt.h这个头文件
      

  5.   

    #include <BASETSD.H>试试吧,祝你好运!
      

  6.   

    加#include <BASETSD.H>和win64_nt.h都没用如果把他改成DWORD和long的话编译结果不对,本来水印只显示在首尾两页的左边,还有Banner应该只显示在中间页header的右边,但现在却是全屏都显示,不对啊
    在win2k也一样