一、dll动态库的静态调用举例
第一个 demodll.bas 这是动态库的源码
'看清这里,不要加 外部-结束外部 了,免得画蛇添足。
========================
'外部 "Windows-MS"
公开 函数 Add2( 传值 x 为 整数型, 传值 y 为 整数型 ) 为 整数型 导出
返回( x + y )
结束 函数
'结束 外部
========================
第二个 生成动态库.bat 生成动态库的批处理
'请注意你的编译器路径
========================
"C:/Program Files/NiceBASIC/nbc" -dll "demodll.bas"
========================
生成的 动态库文件名为 demodll.dll
生成的附属静态库文件名为 libdemodll.dll.a
========================
下面是调用动态库例子
第三个 testdll.bi 头文件
========================
'看清下面的引用库名字是不带后缀“.a”的,且不带“lib”
#引用库 "demodll.dll"
声明 函数 Add2( 传值 x 为 整数型, 传值 y 为 整数型 ) 为 整数型
========================
第四个 testdll.bas 源码
========================
#引用 仅一次 "testdll.bi"
输出 Add2(1,2)
延时
========================
第五个 生成控制台.bat
'请注意你的编译器路径
'DOS下面不支持带有空格的文件夹,所以我在两边加上引号。
'生成文件名 testdll.exe
========================
"C:/Program Files/NiceBASIC/nbc" -s console "testdll.bas"
================================================
二、dll动态库的动态调用的举例
动态调用库的例子
================================================
第一个 demodll.bas
这里需要 [ 外部-结束外部 ] 呀
编译生成 demodll.dll
========================
外部 "Windows-MS"
公开 函数 Add2 别名 "Add2" ( 传值 x 为 整数型, 传值 y 为 整数型 ) 为 整数型 导出
返回( x + y )
结束 函数
结束 外部
========================
第二个 testdll2.bas
'编译生成 testdll2.exe
'函数名称区分大小写
========================
变量 AddNumbers 为 函数 ( 传值 x 为 整数型, 传值 y 为 整数型 ) 为 整数型
变量 hndl 为 任意 指针
hndl=载入链接库("demodll.dll")
AddNumbers = 取库函数地址( hndl, "Add2" )
输出 "1 + 2 ="; AddNumbers( 1, 2 )
释放链接库 hndl
延时
========================