'init' in the 'Logger' class module has arguments and/or a return type that is incompatible with a similar declaration in the version-compatible component.Original deFinition: Function init(aLOGDIR As String,Optional aListBox As Object,Optional aMAXListBoxlines As Integer) As BooleanCurrent deFinition: Function init(aLOGDIR As String,Optional aMAXListBoxlines As Integer) As Boolean
我没有改变init,你可以看到……
这是我的步骤:
>第一代没有兼容性
>在Project属性中设置二进制兼容性(引用以前生成的dll,无论是否重命名)
>第二代
>发生警告.
这是因为参数是一个对象吗?谢谢你的帮助.
解决方法 根据我的经验,当试图让VB6使用COM或C时,必须注意数据类型的差异.我猜这可能是你的问题.如果你已经熟悉这个,我道歉:aLOGDIR As String表示char **;考虑更改为ByVal aLOGDIR As String,但我怀疑这与您的问题有关.
可选的aMAXListBoxlines As Integer意味着short而不是int.可能会出现某些填充问题,但只需将其更改为“长”可能就足够了并解决问题.
因为布尔意味着系统上的短而不是布尔.使用As Long可能更安全.
总结以上是内存溢出为你收集整理的尽管声明保持相同,但没有二进制兼容性全部内容,希望文章能够帮你解决尽管声明保持相同,但没有二进制兼容性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)