2012-06-28 15 views
0

我試圖編寫一個在C++/CLI的包裝DLL來使用C#中的一些本地類。如何從一個DLL(即protobuf生成的類)導出本地類

對於測試我創建了另一個消耗dll的C +/CLI項目。

我的問題是,我想在測試項目中使用dll項目中的一個本地類,但鏈接器抱怨說它沒有找到這個類成員的符號。 我想這是因爲本地類沒有被定義爲ref public。由於本機類代碼是由Google Protobuffers編譯器自動生成的,因此我無法在其中添加「ref public」。

不要誤解我,我不想在未來的c#項目中使用這個本地類,但我想直接在Test項目中訪問它。

+0

爲什麼你不使用protobuf網? – svick

+0

因爲下層應該儘可能多地保留C++ – Thomas

+0

爲什麼?你有什麼實際的理由嗎? – svick

回答

0

我認爲你必須遵循典型的原生C++方法:從dll中導出類,從測試項目中鏈接到dll,然後從測試項目中包含你需要的頭文件使用班級。

我不認爲有一個「管理方式」引用和使用本地類(希望別人會糾正我,如果我錯了)。

+0

我想你是對的。因爲我只是爲了測試目的而需要它,所以它會很麻煩。所以我會添加一個託管的測試類到DLL。 – Thomas