1.一个DLL中定义了多个允许调用的过程/函数,如何调用?
我在已经编写了:
exports
funcTest1 index 1,
ProcTest1 index 2;
这里如果加了“index x” 就编译不能通过,提示:Symbol "index" is specific a platform.
我想这个index是不是就是给调用的函数/过程标识编号?好在程序中用'DLL1/Test.DLL','DLL2/Test.DLL'调用?也就是说'DLL1/Test.DLL'调用了funcTest1, 'DLL2/Test.DLL'调用了ProcTest1?2.看书上说,DLL分为两类“静态调用和动态调用”。书上也没细说。我想,使用DLL的一个重要原因之一就是可以使程序在加载时不用把所有代码加载进如内存。但是根据书上说的,“静态调用时,程序运行时就完成DLL加载工作”,这样的话还要DLL干吗呢?也许的我没看懂,希望DX指点一下。非常感谢!
我在已经编写了:
exports
funcTest1 index 1,
ProcTest1 index 2;
这里如果加了“index x” 就编译不能通过,提示:Symbol "index" is specific a platform.
我想这个index是不是就是给调用的函数/过程标识编号?好在程序中用'DLL1/Test.DLL','DLL2/Test.DLL'调用?也就是说'DLL1/Test.DLL'调用了funcTest1, 'DLL2/Test.DLL'调用了ProcTest1?2.看书上说,DLL分为两类“静态调用和动态调用”。书上也没细说。我想,使用DLL的一个重要原因之一就是可以使程序在加载时不用把所有代码加载进如内存。但是根据书上说的,“静态调用时,程序运行时就完成DLL加载工作”,这样的话还要DLL干吗呢?也许的我没看懂,希望DX指点一下。非常感谢!
解决方案 »
- RW32CORE.DLL
- 如何在某一个EXE的程序加上一个参数让其变成从属性
- 高手指点一下
- 一个bsnone窗体问题
- 为什么我的程序运行一段时间后就监听了从1027-5000的全部端口?
- 关于memo的seltext的问题
- 百思不得其解,菜单弹出后, 点击非菜单区域, 弹出的菜单不能自动消失? 高分求解!!
- 老总让我15天做出一套小型财务,急呀.兄弟来救命呀.出3000分求源码或者财务的第三方控件(在线等)
- 请问用WINSOCK编程发送邮件,如何判断是否需要SMTP验证?如何进行验证?(不是用控件,看清楚)
- 为什么在英文NT中装的SQL Server7.0,输入的汉字,读出来成乱码
- 如何用程序测试ADSL路油器广域网端口IP(用DELPHI)
- 如何判断按下了键盘上的某个键
exports funcTest1,procTest1用全局钩子的时候必须要用到dll,
dll不完全等同于exe,它不可以单独执行,是加载到程序的空间执行的
再请教一下:如果直接用exports funcTest1,procTest1, 那么我再调用DLL时如何制定到底是用到了那个过程/函数呢?如何制定?
我再调用时是这么写的,是否也要改一下?
procedure GetProc(s: string); far; external 'DLL1\Test.dll' //调用FuncTest1
function GetFunc(a, b: integer):integer; external 'DLL2\Test.dll'//调用 ProcTest1implementation
……
exports
funcTest1,
ProcTest1;
此外在dll中你可以
exports
funcTest1 name f1,
ProcTest1 name f2; 可以用name进行改名字还有我觉得
exports
funcTest1 index 1,
ProcTest1 index 2;
这样是正确的,是不是别的地方有问题??
dll的好处是很多的,并且你再更新你的软件功能时候,只需要重新发布一下新的dll就可以你在网上查下相关资料,很多的
其他地方没改动什么啊?只是在unit1里面写个这个函数/过程的定义。如果只是写:
exports
funcTest1, ProcTest1;
在程序中调用时,如何指明调用哪个函数/过程呢?如果不指明的话,程序(不是DLL)运行时就出现“无法定位程序输入点GetFunc于动态链接库Test.dll上。”的错误。
我想,调用时应该要指定调用的是那个函数/过程,否则程序怎么知道需要调用的是DLL的哪个过程呢?不知道我的理解对不对。
昨天看了一些资料(包括大富翁的bbs离线资料库),好像都没有提到我这个问题的,或者是按书上的资料编,但是有问题(index).
看看pe文件结构你就明白了。