none
error C2440: “初始化”: 无法从“const char [21]”转换为“LPCTSTR” ---VS2008 RRS feed

  • 问题

  • 我在VS2008 中写以下语句:

    LPCTSTR data_Set="Software\\Tencent\\QQ\\";


    出现错误提示:

    error C2440: “初始化”: 无法从“const char [21]”转换为“LPCTSTR”

    我想请问下, 类型 LPCTSTR  的变量要怎样定义的?
    谢谢!

    叶叶叶
    2009年5月19日 2:48

答案

  • MSDN上说RegCloseKey需要

    Link to Advapi32.lib.

    你在程序最前面加上
    #pragma comment(lib, "advapi32.lib")就可以了


    Hello world
    • 已标记为答案 叶叶叶 2009年5月22日 2:43
    2009年5月21日 14:34
    版主

全部回复

  • LPCRSTR 应就是 const char*

    从你的错误提示上来看,是不能赋值,加一个强制类型转换应该可以?

    const char* str =
    "Software\\Tencent\\QQ\\" ;

    LPCTSTR data_Set = ( LPCTSTR )str;



    任狂風吹亂我頭髮
    2009年5月19日 3:52
  • LPCTSTR是const TCHAR*,你应该是在UNICODE环境。需要下面这样
    LPCTSTR data_Set=_T("Software\\Tencent\\QQ\\");
    2009年5月19日 14:00
    版主
  • LPCTSTR是const TCHAR*,你应该是在UNICODE环境。需要下面这样
    LPCTSTR data_Set=_T("Software\\Tencent\\QQ\\");
    这个方法好像也不行,我调试时出现错误提示,好像是说_T 是未声明的标识符,有没有其它的方法?
    叶叶叶
    2009年5月19日 15:09
  • LPCRSTR 应就是 const char*

    从你的错误提示上来看,是不能赋值,加一个强制类型转换应该可以?

    const char* str =
    "Software\\Tencent\\QQ\\" ;

    LPCTSTR data_Set = ( LPCTSTR )str;



    任狂風吹亂我頭髮
    这个方法好像也不行,出现下面的错误提示: 错误 2 error LNK2028: 无法解析的标记(0A00000F) "extern "C" long __stdcall RegCloseKey(struct HKEY__ *)" (?RegCloseKey@@$$J14YGJPAUHKEY__@@@Z),该标记在函数 "private: void __clrcall test_api::Form1::btnStart_Click(class System::Object ^,class System::EventArgs ^)" (?btnStart_Click@Form1@test_api@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) 中被引用 test_api.obj 是不是还要包含什么头文件的?
    叶叶叶
    2009年5月19日 15:15
  • 这个不是编译错误,是连接错误。要连接消息内指出的函数所在的库。
    MSMVP VC++
    2009年5月19日 16:50
    版主
  • 这个不是编译错误,是连接错误。要连接消息内指出的函数所在的库。
    MSMVP VC++

    那要怎样才行?是不是要设置什么啊?
    叶叶叶
    2009年5月20日 12:51
  • 需要在link中添加包含long __stdcall RegCloseKey(struct HKEY__ *)这个函数的lib库。
    还有
    const char* str = "Software\\Tencent\\QQ\\" ; 这个问题用
    const char* str = L"Software\\Tencent\\QQ\\" ;再试一下。
    2009年5月21日 1:16
    版主

  • const char* str = L"Software\\Tencent\\QQ\\" ;再试一下。    ---------这个方法也不行,
     

     

    需要在link中添加包含long __stdcall RegCloseKey(struct HKEY__ *)这个函数的lib库。

    -----包含这个函数的Lib库是什么?怎样可以查到?还有,怎样添加Lib库的?

    我初学的,很多不懂,请大家指教下,

    谢谢!



    叶叶叶
    2009年5月21日 14:28
  • MSDN上说RegCloseKey需要

    Link to Advapi32.lib.

    你在程序最前面加上
    #pragma comment(lib, "advapi32.lib")就可以了


    Hello world
    • 已标记为答案 叶叶叶 2009年5月22日 2:43
    2009年5月21日 14:34
    版主
  • MSDN上说RegCloseKey需要

    Link to Advapi32.lib.

    你在程序最前面加上
    #pragma comment(lib, "advapi32.lib")就可以了


    Hello world

    问题解决了,
    谢谢!!
    谢谢大家!

    叶叶叶
    2009年5月22日 2:43