佚名通过本文主要向大家介绍了
在ATL里的接口函数的参数可以是int型的吗?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在ATL里的接口函数的参数可以是int型的吗?
描述:
解决方案1:
描述:
要是可以的话,为什么在参数类型列表里面没有int.要是不可以的话用什么代替?
解决方案1:
typedef T _PtrClass;
~CComPtrBase() throw()
{
if (p)
p->Release();//中断
}
有一个可能就是在此之前调用了CoUnitilize()
这个错误有时候很隐蔽,我曾犯过。
完全可以,最好用long,因为int的长度与开发平台有很大关系!
解决方案3: typedef T _PtrClass;
~CComPtrBase() throw()
{
if (p)
p->Release();//中断
}
这个错误有可能是楼主使用智能指针,结果自己调用了Release,但忘记Detach它,所以在智能指针的析构函数中发生上述错误。
至于int类型,不管在哪里都是可以使用的(包括在MIDL中),不过正如jinliu()所说,COM规范取缔了int类型,但是由于组件的实现者是程序员,所以还是可以使用int类型。因为在16位编译器上int代表16位数,在32位上代表32位数,而在64位上代表64位数,没有统一的规定(由于Integer这个词的意思导致),所以建议楼主不要使用int类型。
当然可以了!哈哈!