我有一些旧的C ++文件,我知道用来编译。我已经创建了一个新的Visual C ++版本6。
我在CStrings上遇到很多关于无法转换为const char *
的编译错误这是一个例子。
CString dogs = "test";
writeoutfile(dogs, 1);
void Crender::writeoutfile(CString data, long data_size) {}
我收到此错误:
错误C2664:'void __thiscall Crender :: writeoutfile(const char *,long)':无法将参数1从'class CString'转换为'const char *'
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
您必须获取指向char字段的原始指针。这可以通过
完成CString::GetBuffer()
所以你可以打电话给
writeoutfile(dogs.GetBuffer(), 1);
答案 1 :(得分:0)
CString应该转换为const char *。它是Unicode构建吗?这是我能想到的唯一解释。
GetBuffer()用于获取指向CString中包含的数据的可写指针。不要那样做!