首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi中间的变量,在privite当中和在var当中有什么区别?

2013-03-14 
delphi当中的变量,在privite当中和在var当中有什么区别??是这样……有个加密机需要调用dll使用,调用时有个函

delphi当中的变量,在privite当中和在var当中有什么区别??
是这样……

有个加密机需要调用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来避免可能发生的重名结果,也会出问题

但如果另写一个极简程序只实现这一个功能时,这个情况又不存在了……在哪声明都没问题delphi中间的变量,在privite当中和在var当中有什么区别?

这下真心尿崩了……

发出来看看有人遇到过类似的情况么…… delphi dll
[解决办法]
改为在type当中的Privite或者public中声明就没问题
--------------------------------------------
这个你指的应该是类的私有变量, 类的外部无法访问



变量是在implementation之前的var部分声明的
-------------------------------------------------
是全局变量, 只要引用了该单元就可以使用, 需要注意变量的值是否初始化及有效.

[解决办法]
DLL 不支持全局变量共享。要想从外部改变一个变量值,应该写个外部函数。要是不需要全局共享,那就应该把变量声明放在 implementation 后面。

热点排行