2009-09-08 71 views
2

任何人都可以告訴我從.net 3.51應用程序調用FoxPro 9代碼的最佳方法嗎?從.Net調用FoxPro代碼

我有一個用Fox 9編寫的遺留生產應用程序。我想盡可能多地展示邏輯和業務流程,以便我可以從.Net重用它。理想情況下,我想以一種使.Net應用程序不可見的方式執行此操作,以便我可以切換Fox代碼並稍後用.Net代碼替換它。我想我可以在Fox中構建一個COM DLL,然後從我的.Net項目中引用它,但是我沒有任何喜悅(當我編譯時Visual Studio中有各種錯誤)。我在這裏錯過了一個技巧,還是我需要做一些建設福克斯網絡服務?

回答

2

我已經通過採取FoxPro的I類婉揭露和使其從Session對象繼承的運氣在過去 -

DEFINE CLASS B爲會話OLEPUBLIC

然後建立FoxPro的DLL和用RegSvr32命令註冊它。然後在Visual Studio中,當您添加對項目的引用時,COM對象應顯示在COM選項卡下。

1

許多衛星以前,我曾經創建FoxPro類作爲Com。正如Kragan建議讓他們成爲OLEPUBLIC一樣,它會公開這些方法。對於許可目的,我用它們添加到COM +(在Vista/Windows 7中這是在C:\ WINDOWS \ SYSTEM32 \ comexp.msc)

然後在.net中 使用FoxProCom; (點在COM +的COM)

//連接到COM(使用FoxPro的COM(項目名稱 - 見項目信息)和類名 類型對象類型= Type.GetTypeFromProgID( 「FoxProComProj.FoxProComClass」,Environment.MachineName。的ToString(),TRUE);

//激活的COM對象 = oDComObject Activator.CreateInstance(對象類型);

//實例的COM FoxProCom.FoxProComClass oFoxCom =(FoxProCom.FoxProComClass)oDComObject;

oFoxCom.UseaOLECl屁股()

//清除Com oFoxCom = null;