用sdk写个小工具,做了个对话框,用DialogBox弹出。int WINAPI _tWinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd)
{
InitCommonControls();
return ::DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, (DLGPROC)MyDialogProc);
}
之前可以正常编译过去,后来添加了一些功能后,再编译就出错:
: error C2059: syntax error : ')'
就是MAKEINTRESOURCE(IDD_DIALOG)这里,把他换成0就可以编过。请各位指教。

解决方案 »

  1.   

    IDD_DIALOG 明显是个资源定义符号,你看下引入了相关的资源头文件了么,这种错误一般都是缺少相关声明造成的;少了个)之类的,
      

  2.   

    我错了,因为使用了gdi+,我习惯性地敲入以下代码:#include "Gdiplus.h"
    #ifndef ULONG_PTR
    #define ULONG_PTR (unsigned long*)
    #endif这是在vc6下的做法,而现在是在vc9下,有一些不同:#define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i))))
    #define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i))))我重新定义了MAKEINTRESOURCE,导致编译出错。