繁体   English   中英

在extern中编写c ++代码

[英]writing c++ code in extern c

我正在尝试实现一个外部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;
   }

 }
 }

谢谢!

extern "C"不会阻止您在函数内部使用C ++。 它只影响调用函数的方式(包括函数的名称)。 由于名称没有被破坏,并且调用序列可能与标准C ++调用序列不同,因此必须确保该函数在出现的任何C ++转换单元中声明为extern "C" 此外, "C"名称不是命名空间,但您可能知道这一点。

据我所知,Qt没有做任何事情来使您的代码或多或少地对C友好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM