是这样……有个加密机需要调用dll使用,调用时有个函数总是一执行就出错---------------------------
Debugger Exception Notification
---------------------------
Project Edebug.exe raised exception class EAccessViolation with message 'Access violation at address 1000151D in module 'dculc.dll'. Write of address 0043612C'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------结果最后竟然发现是因为用来传递参数的变量是在implementation之前的var部分声明的改为在type当中的Privite或者public中声明就没问题如果把这个变量在var里声明,改为aaaaaaaa来避免可能发生的重名结果,也会出问题但如果另写一个极简程序只实现这一个功能时,这个情况又不存在了……在哪声明都没问题这下真心尿崩了……发出来看看有人遇到过类似的情况么……delphidll
Debugger Exception Notification
---------------------------
Project Edebug.exe raised exception class EAccessViolation with message 'Access violation at address 1000151D in module 'dculc.dll'. Write of address 0043612C'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------结果最后竟然发现是因为用来传递参数的变量是在implementation之前的var部分声明的改为在type当中的Privite或者public中声明就没问题如果把这个变量在var里声明,改为aaaaaaaa来避免可能发生的重名结果,也会出问题但如果另写一个极简程序只实现这一个功能时,这个情况又不存在了……在哪声明都没问题这下真心尿崩了……发出来看看有人遇到过类似的情况么……delphidll
--------------------------------------------
这个你指的应该是类的私有变量, 类的外部无法访问变量是在implementation之前的var部分声明的
-------------------------------------------------
是全局变量, 只要引用了该单元就可以使用, 需要注意变量的值是否初始化及有效.