在symbion os中的IMPORT_C和EXPORT_C

在e32def.h文件中第85行和90行可以找到这两个宏的定义如下:

  • #define IMPORT_C __declspec(dllexport)
  • #define EXPORT_C __declspec(dllexport)

显而易见,要想知道怎么用这两个宏只要弄清楚怎么使用__declspec(dllexport)。现在我们来说说__declspec(dllexport)。

 

__declspec(dllexport)是动态链接库技术范畴的一个概念,我这么说是想告诉大家现在已经和symbian os没有关系了。

 

__declspec(dllexport)关键字告诉编译器在创建dll的时候有哪些函数、数据、类以及类成员是对外可见的,需要编译器做特殊处理。 对外可见就是大家所说的导出的意思。

 

这些被导出的函数、数据、类以及类成员被放在二进制dll的某个特殊位置,至于放在什么地方,调用程序怎么去查找它们在dll中位置以后再说。在这里只需要注意:在dll中的名字是它们的修饰名。(大家都知道一个程序中可读的函数名在编译后会生成一个唯一的标示符,这就是修饰名。修饰名的生成没有规则,不同的编译器有不同的规则)。如果你想看看一个dll导出了哪些东西,可以用visual studio的一个小工具dumpbin,这个工具very nice,hehe。

 

1、导出函数的语法是:

 

__declspec(dllexport) TInt __cdecl function_name(TInt para);

 

2、导出类的语法:

 

class __declspec(dllexport) CExportClass : public CBase

{

   。。。。

}

 

其他类似

 

 

 

 

你可能感兴趣的:(在symbion os中的IMPORT_C和EXPORT_C)