extern "C"

extern   "C"   _declspec(dllexport)   double   SquareRoot(double   d);  

 

“C”表示按照标准c进行编译  
  extern   则是用于声明动态导出函数_declspec(dllexport)   double   SquareRoot(double   d);是要外部使用的

这个函数在Dll里的,要把它暴露给别的用户

 

 

extern   "C"    
  好象叫作编译重定向什么的。  
  意思就是后面跟的代码是标准C的语法。  
   
  主要是因为C++有重载的概念。  
  所以编译后生成库不同。  
  eg:  
   
  对函数fun(int,   int)  
   
  标准C编译后生成_fun()  
  C++编译后生成_fun(int,   int)  
   
  如果不加extern   "C"    
  当调用fun(int,   int)时,却找不到_fun(int,   int)  
   
   
  如果在C++文件中引用标准C的库函数或标准C编译成的库  
  一定要加extern   "C"    

你可能感兴趣的:(extern "C")