在C#中調用VFP的DLL檔案 --COM編程一例

來源:互聯網
上載者:User

 在C#中調用VFP的DLL檔案 --COM編程一例

這過程個非常簡單,分為兩步:

1.在VFP中建立公用類
文法如下:
DEFINE CLASS ClassName1 AS ParentClass [OF ClassLibrary] [OLEPUBLIC]
   [IMPLEMENTS cInterfaceName [EXCLUDE]
      IN TypeLib | TypeLibGUID | ProgID ]
   [[PROTECTED | HIDDEN PropertyName1, PropertyName2 ...]
   [[.]Object.]PropertyName = eExpression ...]
   [ADD OBJECT [PROTECTED] ObjectName AS ClassName2 [NOINIT]
      [WITH cPropertylist]]
   [[PROTECTED | HIDDEN] FUNCTION | PROCEDURE Name[_ACCESS |_ASSIGN]
      ([cParamName [AS type] [@]]) [AS type]
      [HELPSTRING cHelpString] |
      THIS_ACCESS(cMemberName)
      [NODEFAULT]
      cStatements
   [ENDFUNC | ENDPROC]]
   [PEMName_COMATTRIB = nFlags | DIMENSION PEMName_COMATTRIB[5]
      [PEMName_COMATTRIB[1] = nFlags
       PEMName_COMATTRIB[2] = cHelpString
       PEMName_COMATTRIB[3] = cPropertyCapitalization
       PEMName_COMATTRIB[4] = cPropertyType
       PEMName_COMATTRIB[5] = nOptionalParams]]
ENDDEFINE

具體說明自己查下MSDN好了,各參數都有詳細的說明,如(類A):
      DEFINE CLASS f1 AS custom OLEPUBLIC &&必須聲名為公用
      FUNCTION mymethod (parm1 AS integer , parm2 AS string) AS interger

      RETURN parm1
      ENDFUNC
      ENDDEFINE

應將此類聲名為公用類,否則無法編譯為DLL檔案,編譯時間根據需要選擇單線程還是多線程

2.在VS的C#工作中調用
在方案總管中的“引用”上面右鍵,彈出的捷徑功能表中選擇“添加引用”,然後在對話方塊中“瀏覽”,選中剛才編譯的DLL檔案確定即可,編譯器會自動把它修改並複製到程式所在檔案夾。

這時會發現引用中多了一個新項NewItem(根據你的VFP工程的名來的),在調用些類的檔案的引用處添加:using NewItem;

這樣,在C#中就可以直接用這個類了,只是類名後要加“Class”,執行個體化的方法是:

ClassName1 VFPClass = new ClassName1();

如上面這個類A:

f1Class myClass = new f1Class();//執行個體化

int i = myClass.mymethod( 9 , "asdfasdf" )//調用類中的函數,用i接收傳回值

當然也可以在不using的情況下直接NewItem.ClassName1 VFPClass = new NewItem.ClassName1();

好了,調用COM原來如此簡單!^_^

這樣是不是使C#使用VFP表的功能和效率大大提高了呢?雖然還不敢和SQL SERVER和儲存過程一比高下。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.