假設我生成一個新的標準API。這個API由一堆C頭文件組成,但沒有實現。特定供應商負責實現我的接口,以便應用程序開發人員可以與他們的產品進行交互開始使用接口的原因很簡單:應用程序開發人員應該能夠毫無困難地與不同產品進行交互,因爲所有產品都實現了我的接口。動態鏈接和加載時間鏈接.DLL
好的。現在到困難的東西。如何實現我的API的供應商實現C代碼?我對這個問題的假設是,供應商只需將我的頭文件包含在他們的項目中,並創建一個「導出」其實現功能的.DLL。更重要的是,如果應用程序開發人員想要與我的API交互(但希望它與任何供應商的任何實現一起使用)編寫代碼以利用此優勢?
我讀this SO post有關動態與負載時鏈接。如果知道要鏈接到的.dll的名稱,並且知道要在該.dll中調用的函數,似乎加載時鏈接很有用。但是,在我的場景中,應用程序開發人員是否必須動態鏈接到實現API API函數的.dll?這個應用程序開發人員將如何知道.dll的名稱是從我的API實現函數的?
我希望我的困惑是有道理的。我來自一個學習如何用C語言編程的背景,但我們對這個東西沒有太多的瞭解。從我的回憶中,我們編寫了一堆頭文件和C文件,然後我們編譯它並將它鏈接起來,並生成一個包含該可執行文件中所有代碼的可執行文件。請幫助澄清我的誤解。