RC *_*and 3 c c++ qt name-mangling
我正在尝试实现一个外部c ++头接口,它将作为共享库生成.它们的示例接口具有包含在extern"C"中的c样式功能,因为它们不希望执行名称修改.
我当前的实现依赖于qt.我现在可以将这个qt代码放在extern"C"中并期望它开箱即用吗?如果这有效的原因?
伪代码://不要指望它可以工作并且可能包含错误.
extern "C"{
void doStuff(){
QString filename="Data.txt";
QFile file( filename );
if ( file.open(QIODevice::ReadWrite) )
{
QTextStream stream( &file );
std::stringstream ss;
ss<<"something"<< endl;
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
extern "C"不会阻止你在函数中使用C++.它只影响调用函数的方式(包括函数的名称).由于名称没有被破坏,并且调用序列可能与标准C++调用序列不同,因此必须确保该函数extern "C"在其出现的任何C++转换单元中声明.此外,"C"名称不是命名空间,但您可能知道.
据我所知,Qt没有做任何事情来使您的代码或多或少地对C友好.
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |