匯入及匯出概念
ILE 語言支援下列類型的匯出及匯入:
- 弱資料匯出
- 弱資料匯入
- 強勁的資料匯出
- 強資料匯入
- 強大的程序匯出
- 程序匯出不足
- 程序匯入
ILE 模組物件可以將程序或資料項目匯出至其他模組。 ILE 模組物件可以從其他模組匯入 (參照) 程序或資料項目。 當使用 CRTSRVPGM 指令上的模組物件來建立服務程式時,其匯出會選擇性地從服務程式匯出。 (請參閱 CRTSRVPGM 指令上的匯出參數。) 匯出的強度 (強或弱) 取決於程式設計語言。 強度會決定何時對匯出有足夠的瞭解來設定其性質,例如資料項目的大小。 在連結時間設定強匯出的性質。 匯出的強度會影響符號解析度。
- 如果一個以上弱出口具有相同名稱,則連結程式會使用強出口的性質。
- 如果弱匯出與強匯出沒有相同的名稱,則在啟動時間之前無法設定其性質。 在啟動時,如果存在多個同名的弱匯出,則程式會使用最大的匯出。 除非具有相同名稱的已啟動低保護性匯出已設定其性質,否則此為 true。
- 在連結時,如果使用連結目錄,且發現弱式匯出項目符合弱式匯入項目,則會連結它們。 不過,只要有未解析的匯入項目要解析,就只會搜尋連結目錄。 解析所有匯入項目之後,會停止透過連結目錄項目的搜尋。 重複的弱匯出不會標示為重複變數或程序。 連結目錄中的項目順序非常重要。
您可以在程式物件或服務程式之外匯出弱式匯出,以在啟動時解決。 這會反對您只在服務程式外部且只在連結時匯出的強式匯出。
不過,您無法在程式物件之外匯出強式匯出。 您可以在服務程式外部匯出強式程序匯出,以在連結時滿足下列任一項:
- 在依參照連結服務程式的程式中匯入。
- 在參照該程式所連結的其他服務程式中匯入。
服務程式透過連結來源語言來定義其公用介面。
您可以透過連結來源語言,使弱式程序匯出成為服務程式之公用介面的一部分。 不過,透過連結來源語言從服務程式匯出弱式程序匯出不再將它標示為弱式。 它是作為一個強大的程序匯出來處理。
您只能將弱資料匯出至啟動群組。 您無法讓它成為透過使用連結程式來源語言從服務程式匯出之公用介面的一部分。 在連結程式來源語言中指定弱資料會導致連結失敗。
表 1 彙總部分 ILE 語言支援的匯入及匯出類型:
| ILE 語言 | 弱資料匯出 | 弱資料匯入 | 強大資料匯出 | 強資料匯入 | 強大的程序匯出 | 弱程序匯出 | 程序匯入 |
|---|---|---|---|---|---|---|---|
| RPG IV | 否 | 否 | 是 | 是 | 是 | 否 | 是 |
| COBOL2 | 是3 | 是3 | 否 | 否 | 是1 | 否 | 是 |
| CL | 否 | 否 | 否 | 否 | 是1 | 否 | 是 |
| C | 否 | 否 | 是 | 是 | 是 | 否 | 是 |
| C++ | 否 | 否 | 是 | 是 | 是 | 是 | 是 |
附註:
|
|||||||
如需特定語言的哪些宣告變成進出口的相關資訊,請參閱下列書籍之一:
