2012-02-07 49 views
0

語法是什麼意思什麼時候我在C++項目中定義一個類是這樣的:C++ - 類定義使用DLL

類THIS_DLL_NAME CLASS_NAME { ... }

的感謝!

+3

很可能,'THIS_DLL_NAME'是一些宏。檢查頭文件是什麼... – 2012-02-07 08:49:59

+0

真正適合的唯一的東西是__declspec(dllexport) – 2012-02-07 11:43:37

+0

導出類非常脆弱。 – 2012-02-09 00:17:47

回答

0

正如Basile和Hans在上面的評論中所述,THIS_DLL_NAME將是一個有條件擴展的宏,取決於您是在構建庫本身還是僅使用該庫的代碼。

(順便說一句,我假設你使用的是Windows在這裏,由於DLL術語。)

THIS_DLL_NAME可以擴展到任何__declspec(dllexport)__declspec(dllimport)。當頭文件包含在要編譯爲THIS_DLL.dll的.cpp文件中時,編譯器需要看到__declspec(dllexport)以便生成合適的入口點,以便將它們從DLL中導出。

當您的類頭包含在使用THIS_DLL.dll的代碼中時,編譯器需要看到__declspec(dllimport)才能生成導入該符號的正確代碼(並在運行時解析它)。

在本文中,您可以直接從Microsoft瞭解更多詳細信息 - Importing and Exporting (MSDN)