|
本帖最后由 vvt 于 2015-4-5 11:48 编辑
1.每个函数加 !DEC$ 就可以了,其实你需要导出的函数应该只是一小部分,大量的函数应该是内部使用的。
2.不管什么调用DLL,都可以有lib,也可以没有lib。
3.调用DLL有两种方式,第一是隐式调用(通过LoadLibrary和GetProcAddress函数获得函数入口),第二是显式调用(通过lib文件告诉编译器函数入口)
注意,在某些教科书里面,这两种调用的名字可能是颠倒的,也就是第一种叫显式,第二种叫隐式。事实上,这个命名应该是根据可执行文件是否有显示的导入表(第二种方式)而言的,而不是根据源代码。
4.上述第一种方式不需要 lib,第二种方式需要 lib。Fortran 调用 Fortran,C++调用Fortran 均可以用这两种方式。
5. 如果商业软件的DLL,你能猜测到函数的参数个数,每个参数的含义,当然可以调用它,非常可能。当然,还有一个前提,就是这个软件并没有对DLL进行验证或加密。
(商业软件有无限种针对DLL的验证)
6. 用别人的DLL,可以用第一种调用方式。也可以用第二种调用方式(这种情况下,没有lib文件,你可以自己创建一个工程,按照猜测的函数定义好,但函数内部是空白的或者随便写点代码,编译得到lib文件,之后删除你编译的DLL,只使用编译后的lib文件和别人的DLL)。
|
|