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 的匯出表中。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1476646
相關文章
- java中this關鍵字Java
- JavaScript中this關鍵字JavaScript
- JAVA中的關鍵字Java
- javascript中的with關鍵字JavaScript
- JAVA關鍵字及其作用解釋Java
- TypeScript 0.9.1 釋出,新增 typeof 關鍵字TypeScript
- mysql 中的explain關鍵字MySqlAI
- Java中final關鍵字Java
- Java中this與super關鍵字Java
- ORACLE中ESCAPE關鍵字用法Oracle
- C++中static關鍵字C++
- Javascript中this關鍵字詳解JavaScript
- java中this關鍵字的用法Java
- Python中nonlocal關鍵字Python
- java中的static關鍵字Java
- C#operator關鍵字自定義運算子C#
- robotframework appiumLibrary新增自定義關鍵字FrameworkAPP
- c/c++常見關鍵字解釋C++
- 如何查詢Procedure, Packages定義中的某些關鍵字 - dba_sourcePackage
- 完全理解JavaScript中的this關鍵字JavaScript
- java中的instanceof關鍵字Java
- Java中的各種關鍵字Java
- 在Java中this關鍵字的使用Java
- Java中transient關鍵字的作用Java
- java中static關鍵字的作用Java
- Java中的static關鍵字解析Java
- C++中重要關鍵字總C++
- RobotFramework自動化2-自定義關鍵字Framework
- this關鍵字
- 關鍵字
- 說說iOS中的常用的關鍵字static ,class(僅限Swift關鍵字)iOSSwift
- # 關於select關鍵字語句定義順序# 關於select關鍵字語句執行順序
- typescript 中的 infer 關鍵字的理解TypeScript
- Java中final關鍵字如何使用?Java
- 搜尋Oracle DDL中的關鍵字Oracle
- C++中的 const 關鍵字C++
- java中native關鍵字的用法Java
- C++中的10個關鍵字C++