2010-08-02 88 views
2

我有一個名爲ManagedWrapper的項目,它是託管C++並構建爲DLL。vs2008在另一個託管C++類中包含來自一個DLL的託管C++類?

我有第二個名爲MyManagedTest的項目,它是託管C++並構建爲DLL。

當我嘗試在MyManagedTest中包含來自ManagedWrapper的頭時,出現鏈接器LNK2020錯誤。然後,我在「框架和引用」中添加對ManagedWrapper的引用,但是這會導致編譯器錯誤,指出ManagedWrapper中的類已經定義(看起來它正試圖在MyManagedTest中再次定義它們,因爲我包含了頭文件),錯誤C2011。

什麼是將ManagedWrapper的類包含到MyManagedTest中的正確方法?

謝謝。

回答

1

對於本機類聲明,應該使用#include,對託管類聲明使用#import。添加引用與#import相同。

順便說一下,「託管C++」不是在VS2008中使用C++與.NET的正確名稱。該功能是C++/CLI。早期版本的Visual C++有一個名爲「Managed Extensions for C++」的錯誤語法,它通常被稱爲「Managed C++」,不應該被使用。

+0

這不是我真正想要的,但感謝您幫助我理解正確的術語。 – Ben 2010-09-20 21:48:42

+0

第一句話是我的答案。不要將'#include'用於包含另一個DLL中存在的託管類的頭文件。改爲使用'#import'(或添加一個引用,它與'#import'相同)。 – 2010-09-21 00:18:21