HWND hwnd = CreateWindowEx( 0, WC_LINK, 
       TEXT("For more information, <A HREF=\"e:\\OA\">click here</A> or <A ID=\"idInfo\">here</A>"),
        WS_VISIBLE | WS_CHILD | WS_TABSTOP, 
        0, 0, 100, 100, 
        hwnd, (HMENU) (IDC_SYSLINK), NULL, NULL);error C2664: “CreateWindowExA”: 不能将参数 2 从“const wchar_t [8]”转换为“LPCSTR”
请问要如何改正?工程属性中字符集是使用多字节字符集。

解决方案 »

  1.   

    TEXT("For more information, <A HREF=\"e:\\OA\">click here</A> or <A ID=\"idInfo\">here</A>")改为L"你的内容"
      

  2.   

    WC_LINK的参数的类型声明或者定义有问题.
    当前情况下你使用的CreateWindowEx是ANSI版本,
    需要一个const char*类型的数据作为第二个参数.即WC_LINK,
    但它被声明或定义为const wchar_t* 类型了.
    估计是某个宏没用好
      

  3.   

    我想他就是因为误加了L才有问题。这里显然在找不是wchar_t类型的字符串。把WC_LINK中的L去掉,用_T宏括起来,如同第三个参数一样
      

  4.   

    说加L的人,到底有没有了解为什么需要加L什么时候加L:)
      

  5.   

    你的当前工程属性中字符集是使用多字节字符集,用TEXT宏应该是没有这个问题的
      

  6.   

    把你的宏定义 
    #define WC_LINK L""这样改
      

  7.   

    commctrl.h头文件中是这样定义的#define WC_LINK L"Syslink",我需要怎样改?
      

  8.   

    大家不是已经告诉你么?应该把L去掉,改为_T("Syslink")
      

  9.   

    如果是系统头文件,你不应该能改动。这个commctrl.h应该不是微软提供的commctrl.h吧?至少我在微软的头文件中没看到这个定义
      

  10.   

    error C2664: “CreateWindowExA”
    CreateWindowEx ->  CreateWindowExW