Импорт AbstractFactory из C++ dll
От: j s p Украина  
Дата: 06.03.06 14:24
Оценка:
В поиске не нашел поэтому ->
имеется с++ длл с фабричными функциями.

в base.dll
IBase* CreateConcreteBase1();
IBase* CreateConcreteBase2();

где-то в base.h
interface IBase
{
    virtual double __stdcall GetDouble() const = 0;
};


в с# клиенте

public interface IBase
{
  double GetDouble();
}
[DllImport("qtu.dll", EntryPoint = "CreateConcreteBase1", CallingConvention = CallingConvention.StdCall)]    
private static extern IBase CreateConcreteBase1();

void Main()
{
  try
  {
    IBase base = CreateConcreteBase1();
  }
  catch (Exception e)
  {
    // получаем исключение SEHException c сообщением:
    // "External component has thrown an exception."
  }
}


Подскажите, что неправильно? Догадываюсь, что так просто не получается вернуть объект типа IBase, но вот что
делать не знаю.

ЗЫ. на COM переделывать пока не хочется.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.