0

當閱讀WP8 C++ project template,我看到靜態庫和動態鏈接庫對WP8意味着什麼?

的Windows Phone空的動態鏈接庫

一個項目爲Windows Phone應用程序創建一個本地的動態鏈接庫。

Windows Phone的空靜態庫

一種爲Windows Phone的應用程序 創建本機靜態庫項目。

什麼是靜態庫和動態鏈接庫意味着WP8?

假設我有我的Windows庫資源(例如openssl),是否需要將WP8靜態庫轉換爲WP8應用程序才能使用?

無論我使用WP8靜態還是動態鏈接庫,我都必須將它們包裝在WP8運行時組件中,以便我的應用程序消耗,對嗎?

回答

0

在基本級別上,靜態和動態庫與其他任何Windows環境相同(所以請參見this other SO question for more clarification)。

對於WP8應用程序,你要麼需要生產:

  1. 一個XAML .NET/Windows運行時的混合應用。
  2. DirectX C++/C項目(通常是一款遊戲)。

對於1,你需要包裹或者您的靜態在WP8運行時組件.lib.dll,爲您的.NET方消費。

對於2.它看起來像你最終建立一個傳統的.exe。在這種情況下,您將以正常方式直接鏈接到您的.lib.dll。 (我對這個不太熟悉,所以可能會錯過這裏的一些微妙之處)。

在任何情況下,如果您擁有VS中的所有源代碼並引用您需要的.lib.dll的項目,而不是引用二進制文件本身,則更容易鏈接所有內容。

通過這種方式,您可以確保所有代碼的構建目標是正確的運行時環境(使用正確的CPU架構來定位Phone API)。此外,VS應該自動將所有依賴關係添加到最終的XAP包中。

+0

你創建了一個WP靜態庫嗎?我創建和構建,但輸出不包含.lib – onmyway133

+1

我有 - 我剛剛嘗試使用C++「Windows Phone空靜態庫」項目。它在Debug目錄中生成一個PhoneLib1.lib。構建輸出窗口甚至會說明它正在發生什麼(VS Pro)。 –