2009-09-08 2 views
2

Может ли кто-нибудь сказать мне лучший способ вызвать код FoxPro 9 из приложения .Net 3.51?Вызов кода FoxPro от .Net

У меня есть унаследованное производственное приложение, написанное на Fox 9. Я хочу разоблачить столько логических и бизнес-процессов, сколько могу, чтобы я мог повторно использовать его из .Net. В идеале я хочу сделать это таким образом, чтобы сделать его невидимым для приложения .Net, чтобы я мог отключить код Fox и заменить его кодом .NET позже.

Я думал, что могу просто создать COM-DLL в Fox, а затем ссылаться на нее из моего .Net-проекта, но я не испытываю к этому радости (различные ошибки в Visual Studio при компиляции). Я пропустил трюк здесь или мне нужно сделать что-то вроде создания веб-службы Fox?

ответ

2

Я имел счастье в прошлом, принимая Foxpro класс я Вана разоблачить и делает его наследовать от объекта Session -

DEFINE CLASS B AS SESSION OLEPUBLIC

Затем построить Foxpro DLL и зарегистрируйте его с помощью команды RegSvr32. Затем в Visual Studio объект COM должен отображаться на вкладке COM при добавлении ссылок на ваш проект.

1

Много лун назад, я использовал для создания классов FoxPro как Com. Поскольку Краган предложил сделать их OLEPUBLIC, и он будет раскрывать методы. Для целей разрешения я использовал их для добавления в Com + (в Vista/Windows 7 это находится под C: \ Windows \ System32 \ comexp.msc)

Затем в .Net с использованием FoxProCom; (Точка на ком в COM +)

// Подключение к Com (с использованием FoxPro Com (название проекта - см информационного проекта) и имя класса Типа ObjectType = Type.GetTypeFromProgID ("FoxProComProj.FoxProComClass", Environment.MachineName. ToString(), правда);

// Активировать Com Объект oDComObject = Activator.CreateInstance (ObjectType);

// Instantiate Ком FoxProCom.FoxProComClass oFoxCom = (FoxProCom.FoxProComClass) oDComObject;

oFoxCom.UseaOLECl ass()

// Очистить Com oFoxCom = null;

 Смежные вопросы

  • Нет связанных вопросов^_^