最近需要用qt调用VS写的dll,遇到一些接口问题,在此记录,有误欢迎指出
unsigned char path[] = “C:/DeskTop/文件名.后缀”;
char* buf = reinterpret_cast<char*> (path);
string pathStr(buf);
cout << pathStr.c_str() << endl;
Qt Creator:
QString filePath = “C:/DeskTop/文件名.后缀”;
string str1= filePath.toStdString();
char* str2=const_cast<char *>(str1.c_str());
qDebug() << str2;
string str3(str2);
qDebug() << str3.c_str();
QString filePath = “C:/DeskTop/文件名.后缀”;
QByteArray Temp= filePath.toLocal8Bit();
char* str2 = Temp.data();
qDebug() << str2;
说明:第一种方法得到的char*, 用qDebug()可以打印出来中文字符
但实际上如果是路径读取文件的时候,可能会读不出来;
第二种方法得到的char*,打印的时候,中文字符可能会以 ? 代替,
但是能够正常的读取文件
QString filePath = “C:/DeskTop/文件名.后缀”;
char pathTemp[filePath.length()];
strcpy(pathTemp, filePath.toUtf8().data());
qDebug() << pathTemp;
|