`
totoxian
  • 浏览: 1073899 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Symbian中IMPORT_C关键字释义

阅读更多

在Symbian程序中我们经常会看到IMPORT_C这个关键字,它是C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\include下e32def.h文件里面定义的一个宏.

原定义如下:

#define IMPORT_C __declspec(dllexport)

那么__declspec(dllexport)又是什么东东呢?

先看代码:

以下是在dev-c++里建立自已的dll时的dll.h里面的代码,这里面有一个_declspec(dllexport)

#ifndef _DLL_H_
#define _DLL_H_ //防重复定义

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */


DLLIMPORT void HelloWorld (void);


#endif /* _DLL_H_ */

上面代码里面的_delcspce(dllexport)被定义为宏,这样可以提高程序的可读性!这个的作用是将函数定义为导出函数,也就是说这个函数要被包含这个函数的程序之外的程序调用!本语句中就是:void Helloword(void)

摘自msdn:在 32 位编译器版本中,可以使用 __declspec(dllexport) 关键字从 DLL 导出数据、函数、类或类成员函数。__declspec(dllexport) 将导出指令添加到对象文件

若要导出函数,__declspec(dllexport) 关键字必须出现在调用约定关键字的左边(如果指定了关键字)。例如:

__declspec(dllexport) void __cdecl Function1(void);

若要导出类中的所有公共数据成员和成员函数,关键字必须出现在类名的左边,如下所示:

class __declspec(dllexport) CExampleExport : public CObject
{ ... class definition ... };

生成 DLL 时,通常创建一个包含正在导出的函数原型和/或类的头文件,并将 __declspec(dllexport) 添加到头文件中的声明。若要提高代码的可读性,请为 __declspec(dllexport) 定义一个宏并对正在导出的每个符号使用该宏:

#define DllExport   __declspec( dllexport ) 

__declspec(dllexport) 将函数名存储在 DLL 的导出表中。

分享到:
评论

相关推荐

    JSON_symbian_application_example.rar_JSON_c json_json symbi_json

    c_json是一个C语言编写的JSON解析器和生成器,适用于资源有限的嵌入式系统,如Symbian。它提供了基本的JSON对象的创建、解析和序列化功能,是Symbian开发者处理JSON数据的常用工具之一。 在"JSON_symbian_...

    symbian_sms_alarm.rar_Symbian s_Symbian 短信_symbian_symbian sms_短

    标题中的“symbian_sms_alarm.rar”表明这是一个与Symbian操作系统相关的短信警报功能的压缩包文件。Symbian是早期智能手机操作系统的一种,尤其在2000年代中期至晚期非常流行,广泛应用于诺基亚等品牌的手机。这个...

    symbian_log.rar_ symbian_log_Symbian l_Symbian log

    【描述解析】:描述提到“塞班日志打印代码”,这表明压缩包中的“symbian_log.txt”文件可能是一个源代码文件,包含了在Symbian平台上进行日志记录的函数或类。开发者可以将这些代码集成到他们的项目中,以便在开发...

    File_Fetching_Example_v1_0.zip_nokia_symbian_symbian File_symbi

    【标签】"nokia symbian symbian__file symbian_文件 visual_c" 暗示了开发过程中可能使用了C++编程语言,特别是Visual C++,因为Symbian OS的开发通常使用C++ SDK。"symbian__file"和"symbian_文件"进一步强调了这...

    0ab.zip_symbian_symbian brows_symbian browser_symbian richedit_s

    "Symbian browser control"指的是在Symbian系统中用于构建应用程序的一部分,特别是与网页浏览功能相关的部分。这个“浏览器嵌入控件”允许开发者将网页浏览功能集成到他们的应用中,就像在桌面操作系统中使用IE ...

    Symbian_err_code.rar_err -11 symbi_visual c

    本文将围绕"Symbian_err_code.rar_err -11 symbi_visual c"这个主题,深入解析Symbian系统中的错误代码及其含义,特别是与错误-11相关的Symbian Visual C++开发问题。 错误代码在软件开发中扮演着至关重要的角色,...

    symbian_AudioPlayer.rar_Audio in symbian_symbian_symbian 播放器_sy

    《Symbian音频播放器开发详解》 在移动操作系统的历史上,Symbian系统曾占据着重要的地位,尤其是在智能手机早期阶段。本篇文章将深入探讨如何在Symbian平台上实现一个完整的音频播放器,通过分析提供的资源,我们...

    exp_symbian_OS.rar_Symbian OS源代码_exp_symbian_OS _os_symbian_手机

    《深入探索Symbian OS:源代码解析与手机平台理解》 Symbian OS,作为历史上最为成功的智能手机操作系统之一,其源代码对于开发者和技术爱好者来说,无疑是一份珍贵的学习资源。"exp_symbian_OS.rar"这个压缩包,...

    new_symbian_signed_chinese_v0.1.rar_Symbian Signed_nokia symbian

    在提供的文件中,"new_symbian_signed_chinese_v0.1.pdf"很可能是一份详细的Symbian Signed指南,详细解释了签名过程和注意事项,适合开发者和对此感兴趣的技术爱好者阅读。而"www.pudn.com.txt"可能是关于发布平台...

    Example_BluetoothChat.rar_symbian_symbian sample audio_visual c_

    《Symbian系统中的蓝牙语音通信实现》 在移动设备技术的发展历程中,Symbian操作系统曾占据着举足轻重的地位,特别是在早期智能手机领域。本文将深入探讨如何在Symbian系统上实现蓝牙语音通信功能,这是一项关键的...

    symbian Open_C_Dev_v1_1

    - **接触更多的代码**:通过Open C,开发者可以访问到更多的资源,包括Symbian OS中的核心功能。这种开放性的做法让开发者能够更容易地获取所需的功能模块,加快开发进度。 - **接触更多的开发者**:文档鼓励...

    MMS.rar_mms symbian_symbian MMs_symbian s60_visual c

    Symbian操作系统是早期智能手机广泛采用的系统平台,尤其是在诺基亚手机中非常流行。本篇文章将深入探讨如何在Symbian S60平台上实现MMS发送功能,并结合Visual C++的开发环境进行程序设计。 首先,Symbian S60系统...

    IM.rar_IM Symbian_s60_s60 3rd_symbian 3rd_symbian im

    《Symbian S60 3rd即时通讯系统解析与应用》 Symbian操作系统,作为曾经智能手机领域的主导者,以其开放性和强大的功能吸引了众多开发者。在这个系统上,即时通讯(IM)应用的开发尤为关键,因为它满足了用户...

    Symbian_OS_code(全).rar

    3. **FileSystem**:文件系统是Symbian中不可或缺的一部分,它负责文件的创建、读写、删除等操作。源码可以帮助我们理解Symbian如何实现高效的文件管理。 4. **Network Stack**:Symbian的网络栈支持TCP/IP协议,...

    Symbian_OS_Basics_Lab_Exercises_v3_1_en

    《Symbian操作系统基础实验教程》是针对移动设备操作系统Symbian OS的入门学习资料,主要涵盖Symbian操作系统的基本概念、架构以及编程实践。这个压缩包包含的是配套的实验练习,版本为v3.1,旨在帮助学习者通过实际...

    symbian_sis_Sign

    标题 "symbian_sis_Sign" 暗示了我们正在讨论的是塞班(Symbian)操作系统中关于 sis 文件签名的过程。SIS 文件是塞班系统上安装应用程序的标准格式,类似于其他平台上的 APK 或 EXE 文件。签名在塞班系统中至关重要...

    json_with_python_symbian_60.rar_json symbian_python_python json_

    "json symbian python python json"标签进一步强调了其主要内容是关于Python在Symbian系统中处理JSON数据。 在Symbian 60平台上,Python的实现可能需要特定的库或框架,以便在移动设备上执行JSON相关的任务。文件...

    symbian_mms_sendrecv.zip_symbian MMs

    【标题】:symbian_mms_sendrecv.zip_symbian MMs 【描述】:诺基亚手机在塞班系统中处理MMS(Multimedia Messaging Service,多媒体信息服务)的发送和接收过程是本主题的核心。这涉及到从创建、配置到实际传输...

    Symbian_Signed_Accessing_Manufacturer_Capabilities_v1_0_en.pdf

    标题与描述均指向"Symbian_Signed_Accessing_Manufacturer...整个过程体现了Symbian Signed程序在保护用户隐私、保障系统安全以及促进应用生态健康发展方面的重要作用,同时也展示了制造商在敏感权限分配中的审慎态度。

    Example_BluetoothChat.rar_bluetooth symbian_symbian_symbian blue

    在Symbian系统中,蓝牙功能主要由BlueSoleil、BTStack等驱动支持,提供了API接口供开发者使用。 在Symbian OS中,蓝牙应用开发通常涉及以下几个核心组件: 1. **Bluetooth Manager (BSM)**:管理蓝牙设备的初始化...

Global site tag (gtag.js) - Google Analytics