我有一個頭看起來像這樣:C++/CLI向前聲明
namespace Dummy
{
ref class ISYSession {};
namespace Afw
{
/// <summary>Sammlung von AFW-Utility-Methoden</summary>
public ref class AfwUtility
{
public:
static void CopyAFWParamsToIDictionary(AFWParams ¶meterIn, System::Collections::IDictionary^ parameterOut);
static AFWParams* CopyIDictionaryToAFWParams(System::Collections::IDictionary^ dictionary);
static void ShowExceptionLog(System::String^ sessionId);
static void ShowStatementLog(System::String^ sessionId);
static Dummy::ISYSession^ GetSession(AFWAppClass *acl);
};
}
}
如果我不使用的標題爲我的引用類,我不能在同一程序中使用它。但有了這個頭文件,我的代碼不再編譯。
這是第一次兩個錯誤:
C:\開發... \ xy.dll:警告C4944: 'ISYSession':達斯符號卡恩nicht AUS「C:\開發... \ XY。 dll'importiert werden:'Dummy :: ISYSession'ist bereits im aktuellen Bereich vorhanden。
(英文: 「 '假人:: ISYSession':符號不能從xy.dll進口:假人:: ISYSession已存在在目前的範圍。」)
錯誤C3699: 「^」 :Diese Referenzierung kann nichtfürden Typ「Schleupen :: CS :: SY :: ISYSession」verwendet werden。
(英語:「此引用不能被用於類型‘假人:: ISYSession’。」)
這是怎麼應該工作?對我來說,似乎編譯器認爲ISYSession ref類是在同一個程序集中定義的(它不是,它是在不同的.NET DLL中定義的)。
是的,這確實是問題.... – Antineutrino 2012-02-29 15:25:31