我是託管C++的新手。託管C++無法解析的令牌
我在一個.sln,Project Lib和Project LibTest中有兩個託管的C++項目。 LibTest使用Lib。
Lib編譯並鏈接正常。該項目設置爲.dll。
LibTest也被編譯爲.dll,但是當它進入鏈接時,我會在所有Lib ::方法中得到「未解析的標記」。這些方法定義在Lib .cpp文件中定義。
如果我將定義移入Lib.h文件,一切正常。
我已經修改了LibTest的Reference來依賴於Lib項目。
我錯過了什麼?
編輯:好吧,這正是我所擁有的,它仍然不起作用。
首先,我使用的是Visual Studio 2008 SP1。
其次,當我在C#中做了類似的練習時,它運行良好。
我創建了一個空的C++ CLR項目。我添加了一個Lib項目。我添加了一個託管類。 VSTD生成Lib.h和Lib.cpp。構造函數是自動生成的。
然後我又添加了另一個項目到我的解決方案;我稱之爲LibTest。我添加了另一個名爲LibTest的託管類。生成LibTest.h和LibTest.cpp。我試圖實例庫中LibTest構造,但在連接過程中它只是說:
1> LibTest.obj:錯誤LNK2020:未解決的令牌(06000002)庫:: ctor的
這裏是確切的代碼:
庫項目(編譯爲.dll文件的項目)
//Lib.h
#pragma once
ref class Lib
{
public:
Lib(void);
};
//Lib.cpp
#include "Lib.h"
Lib::Lib(void)
{
}
LibTest項目(編譯爲application.exe)
// LibTest.h
#pragma once
ref class LibTest
{
public:
LibTest(void);
};
// LibTest.cpp
#include "LibTest.h"
#include "Lib.h"
LibTest::LibTest(void)
{
Lib^ lib = gcnew Lib;
}
int main()
{
return 0;
}
Wow..I必須從非託管C++ say..coming ..我一直想開發環境(在這種情況下, VSTD IDE)來管理#include,以及所有庫鏈接,而無需我明確指定它。這真是太神奇了!我想告訴整個非託管C++世界! (我只落後6年!= p) – sivabudh 2009-06-02 20:25:47