C++,错误:"const char *"类型的实参与"char *类型的形参不兼容" 15
举个例子说明我的代码stringdata="123";LPCTSTRmacaddressvalue=chartowchar(data.data());这个代码会报上述的错...
举个例子说明我的代码
string data="123";
LPCTSTR macaddressvalue =chartowchar(data.data());
这个代码会报上述的错误,请问如何解决呢? 展开
string data="123";
LPCTSTR macaddressvalue =chartowchar(data.data());
这个代码会报上述的错误,请问如何解决呢? 展开
3个回答
展开全部
这是说明类型不兼容,强制转类型。在声明变量 char* 时改成 const char *即可。
当用户想在.h声明中定义成员变量,有时会报类型重定义错误,如果不是工程中真的重复定义了多个同名类,那么多半是没有给该类的头文件加条件指示符#ifndef。
条件指示符#ifndef 最主要的目的就是防止头文件的重复包含和编译,这样才能保证头文件被多个其他文件引用时,内部的数据不会被多次定义而造成错误。
扩展资料
C++ 中形参与实参区别:
1、形参出现在函数定义的地方,多个形参之间以逗号分隔,形参规定了一个函数所接受数据的类型和数量。
实参出现在函数调用的地方,实参的数量与类型与形参一样,实参用于初始化形参。
2、当形参是引用类型时,对应的实参被引用传递,引用形参是对应的实参的别名。
当实参的值被拷贝给形参时,形参和实参是两个相互独立的对象,对应的实参被值传递。
3、C++中,建议使用引用类型的形参替代指针,因为使用引用,形式上更简单,无须额外声明指针变量,也避免了拷贝指针的值。如果函数无须改变引用形参的值,最好将其声明为const引用。
展开全部
chartowchar不是库函数 , 是你自己定义的函数,定义的时候原型应该是:
wchar_t chartowchar( char* );
string::data( )返回的是const char* 从const char*到char*时不能直接转换的,
解决方式:
chartowchar( const_cast<char*>( data.data( ) );
但最好不要这样使用,建议将chartowchar的参数定义为const char*.
wchar_t chartowchar( char* );
string::data( )返回的是const char* 从const char*到char*时不能直接转换的,
解决方式:
chartowchar( const_cast<char*>( data.data( ) );
但最好不要这样使用,建议将chartowchar的参数定义为const char*.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把 string data=“123” 修改成 char data[]="123"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询