至于要求就是 dll 是给自已或别人调用的
如果你要考虑广泛的兼容 比如 你用VC 写的,可以给 VC,Delphi,PB,VB,C# 等语言调用
你的 dll 输出函数传参方式就得按固定方式,一般采用Win32API 类似的 cdel 传参方式
dll 有时不仅仅是一些函数库,有些 dll 是一个COM或DCOM组件,支持 regsvr32 xxxdll 来注册,这就要求 dll 中对应的 注册与反注册函数,也就是遵循某个框架。
还有 dll 不一定就是放些函数执行代码,dll中也可以放数据,如或资源(还是或文字)什么的。
参考一些支持多国语言的程序,换一个dll 就显示的不同国家文字,就是通过不同的资源 dll 来实现的。
最后,dll 不一定是 dll 这个怎么说呢,就是你的程序中用到的 一些数据文件或配置文件或记录文件你也可以命名为 xxxdll 这样多数据情况普通用户就不会乱改你的配置/记录文件了。因为相对于 ini 文件 dll 一般用户不是“随意”能用记事本打开来改的。当然不建议这么做。给你写一个我写的DLL框架,你自己套用就可以,注意procedure的写法以及导出的方法。
EXPROS?你写错了吧,我没有见到这个关键字,可能是exports,这个是一定要有的,位于程序代码后部,dll初始化的Begin前边,用来声明要导出的函数、过程。
至于stdcall,其实加不加也没有什么大区别,都可以执行
library DLL_NAME;
const
type
var
//这里是过程、函数的完整声明,以及过程、函数的完整代码
//最后可以加上stdcall;
procedure p1(vars:vartype ); stdcall;
var
begin
end;
exports
p1;
//这里写出可以被外部程序调用的过程、函数,只要写出函数、过程的标题即可,中间用逗号分开,最后有一个分号(API)
begin
//这里是DLL被载入时初始化执行的部分,可以初始化变量
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)