如题
解决方案 »
- 帮我看看这个C#聊天程序哪错了~~
- WPF浏览器应用程序如何进行代码混淆
- VS2005和vs2008net FrameWork问题
- 求教c#中的代码安全性的问题
- 求教。。。。麻烦。。。关于From的Close的。
- 为什么ExitCode总是不为0呢?
- 熟悉C#.NET ASP.NET的xdjm看过来
- 关于UltraMaskededit的用法,求救!!!
- 怎么将MS office project2003嵌入到asp.net 的网页中,要能动态能绑定数据库的,小弟不懂,请教各位
- 关于ICON的小问题。
- 求教!ASP.NET中Timer到时间不触发时间..?
- 读DataSet中的数据时最后一条数据总是读不出来,是怎么回事儿
其他的一般都是在调用含有句柄参数的方法时,根据返回的错误值来判断
#define INVALID_HANDLE_VALUE (HANDLE)(-1)而在C#中与C++中HANDLE对应的数据类型是IntPtr,那么:当C#中判断返回的句柄是否有效就存在这样的问题:
==============================================
=================C++==========================
HANDLE Function1()
{
HANDLE hDevice = INVALID_HANDLE_VALUE; return hDevice;
}==============================================
==================C#==========================
IntPtr hDevice = IntPtr.Zero;
hDevice = Function1();// 当然这里需要使用平台调用进行处理
此时如何判断hDevice是否有效?是否如下:
if (hDevice == IntPtr.Zero)
{...}
还是如下:
if (hDevice == IntPtr(-1);
??????????????????????????????????????????????????????
if (hDevice == IntPtr.Zero) {}
还是用:
if (hDevice == IntPtr(-1) {}
来判断返回句柄是否有效,还是有其它什么方法?谢谢
hDevice = Function1();
if (hDevice == 0)
{...}
int Function1()
{
dllimport
int C++Function1(...)
return C++Function1
}
句柄化也是一个信息隐藏的方式, 如果 dll 是自己编写的, 是否可以考虑提供一个测试给定 handle 是否合法的调用呢
不是这样好不好?