我有一個接口,說;如何爲通用接口編寫原生模板後備存儲?
public interface ICustomCollection<T>
{
void Add(T item);
bool Remove(T item);
bool Contains(T item);
}
我想創建一個訪問本地C/C++ DLL(這也是我想創建),它提供了一個實現類。我該如何着手編寫託管類和本地代碼才能運行?我知道互操作基礎知識,但我不知道如何在這種情況下處理泛型類型。
我有一個接口,說;如何爲通用接口編寫原生模板後備存儲?
public interface ICustomCollection<T>
{
void Add(T item);
bool Remove(T item);
bool Contains(T item);
}
我想創建一個訪問本地C/C++ DLL(這也是我想創建),它提供了一個實現類。我該如何着手編寫託管類和本地代碼才能運行?我知道互操作基礎知識,但我不知道如何在這種情況下處理泛型類型。
當您在思維上稍作調整並要求T是從Object派生的接口類型時,您應該這樣做,那麼C++接口就會變得更加明顯。
這建立在Visual Studio 2010罰款:
template<class T>
public interface class ICustomCollection
{
virtual void Add(T item);
virtual bool Remove(T item);
virtual bool Contains(T item);
};
template<class T>
public ref class GenericCustomCollection : ICustomCollection<T>
{
virtual void Add(T item){ }
virtual bool Remove(T item){ return false; }
virtual bool Contains(T item){ return false; }
};
public ref class ConcreteCustomCollection : ICustomCollection<int>
{
public:
virtual void Add(int item){ }
virtual bool Remove(int item){ return false; }
virtual bool Contains(int item){ return false; }
};
我只是做了它建立所需的最低,您可以使用此作爲起點爲您實現。
如果你開始使用C++/CLI,這是一本好書:Expert C++/CLI
我應該說是C++/CLI界面應該成爲明顯的,因爲你不會寫一個純粹的C++ DLL。 – dexblack 2011-03-31 02:49:28