GNAT中使用DLL
GNAT中使用DLL
本篇為翻譯文檔
為了使用DLL(稱為“API.DLL”)中的服務(wù),在你的ADA工程中你必須有:
關(guān)于API.DLL中的你想訪問(wèn)的例程與/或變量的ADA聲明。如果沒(méi)有合適的ADA
聲明,則需要從和DLL一起提供的C/C++頭文件生成。
導(dǎo)入庫(kù)(“l(fā)ibAPI.dll.a”或“API.LIB”)。像先前提到的一個(gè)導(dǎo)入庫(kù)是一個(gè)包含加載時(shí)
將被填充用于定位實(shí)際的“API.DLL”例程的導(dǎo)入表的靜態(tài)鏈接庫(kù)。有時(shí)你沒(méi)有一個(gè)
想使用的DLL的導(dǎo)入庫(kù)。接下來(lái)的章節(jié)將解釋如何生成一個(gè)導(dǎo)入庫(kù)。注意這是可選的。
實(shí)際的DLL,“API.DLL”
一旦你有了以上的一切,就可以編譯一個(gè)使用API.DLL中服務(wù)的ADA工程,工程主子程序?yàn)镸y_Ada_App,你的簡(jiǎn)單的命令問(wèn)題
$ gnatmake My_Ada_App -largs -lAPI
Gnatmake命令參數(shù)中最后的參數(shù)“-largs -lAPI”告訴GNAT連接器去尋找一個(gè)導(dǎo)入庫(kù)。連接器將按照一個(gè)特定順序?qū)ふ覍?dǎo)入庫(kù)名稱:
“l(fā)ibAPI.dll.a”
“API.dll.a”
“l(fā)ibAPI.a”
“API.lib”
“l(fā)ibAPI.dll”
“API.dll”
前三個(gè)是GNU風(fēng)格的導(dǎo)入庫(kù)。第4個(gè)是微軟風(fēng)格的導(dǎo)入庫(kù)。最后的兩個(gè)是實(shí)際的DLL名稱。
注意,如果Ada包中對(duì)“API.DLL”的聲明包含以下編譯指令pragma
Pragma Linker_Options(“-lAPI”);你將不需要在gnatmake命令參數(shù)的末尾加入“-largs -lAPI” 。
如果任意上述項(xiàng)目丟失你將必須自行制作。接下來(lái)的章節(jié)解釋如何使用一個(gè)叫“API.DLL”的示例DLL。
總結(jié)
以上是生活随笔為你收集整理的GNAT中使用DLL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 本地安装Tomcat详细步骤
- 下一篇: 梯度下降算法结束条件