Не могу использовать typedef одного класса в DLL из другого проекта - PullRequest
0 голосов
/ 03 мая 2011

Я написал DLL, в которой у меня есть namespace VT в классе ведьм public ref class Database в ведьме, у меня есть typedefs:

public:
        typedef System::Collections::Generic::Dictionary <System::String^, Database^>         SubkeyDictionary;
        typedef System::Collections::Generic::Dictionary <System::String^, System::Object^>   ValueDictionary;
        typedef System::Collections::Generic::KeyValuePair <System::String^, Database^>       SubkeyKeyValuePair;
        typedef System::Collections::Generic::KeyValuePair <System::String^, System::Object^> ValueKeyValuePair;

Когда я добавляю свою DLL в другой проект и пишу VT:: Я не вижу своих typedefs, почему ???

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Набор типов больше похож на псевдоним, чем на фактический тип, и я скоро проверю, но я подозреваю, что он не представлен как тип .NET, который можно использовать из других сборок.

Однако еще не все потеряно. Вместо того, чтобы использовать набор текста, вы могли бы сделать следующее

public:
  ref class SubkeyDictionary : public System::Collections::Generic::Dictionary <System::String^, Database^> {};
....

Это объявляет фактический тип, на который вы затем можете ссылаться.

0 голосов
/ 03 мая 2011

typedefs находятся внутри класса, а не пространства имен. Запись

VT::Database::

должен сделать трюк.

...