[]如果API函数返回的是ANY怎么处理
发布时间:2011-06-23 15:58:35 文章来源:www.iduyao.cn 采编人员:星星草
[求助]如果API函数返回的是ANY怎么办?
因为VB6有ANY类型所以可以任意类型的数据,而VB。NET不允许这样做怎么办?
举个例子:
Public Declare Function ReadProcessMemory Lib "Kernel32 " (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
lpBuffer 返回的不一定是整型,有可能是浮点型或字符型等等,但是由于没有ANY型所以只能返回一个整型的数据,该怎么办呢?
------解决方案--------------------
IntPtr 结构 [C#]请参见
IntPtr 成员 | System 命名空间 | UIntPtr | IntPtr 成员(Visual J# 语法) | C++ 托管扩展编程
要求
命名空间: System
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET
程序集: Mscorlib (在 Mscorlib.dll 中)
语言
C#
C++
JScript
Visual Basic
全部显示
用于表示指针或句柄的平台特定类型。
有关此类型所有成员的列表,请参阅 IntPtr 成员。
System.Object
System.ValueType
System.IntPtr
[Visual Basic]
<Serializable>
Public Structure IntPtr
Implements ISerializable
[C#]
[Serializable]
public struct IntPtr : ISerializable
[C++]
[Serializable]
public __value struct IntPtr : public ISerializable
[JScript] 在 JScript 中,可以使用 .NET Framework 中的结构,但不能定义自己的结构。
线程安全
此类型对多线程操作是安全的。
备注
IntPtr 类型被设计成整数,其大小适用于特定平台。即是说,此类型的实例在 32 位硬件和操作系统中将是 32 位,在 64 位硬件和操作系统上将是 64 位。
IntPtr 类型可以由支持指针的语言使用,并可作为在支持与不支持指针的语言间引用数据的一种通用方式。
IntPtr 对象也可用于保持句柄。例如,IntPtr 的实例广泛地用在 System.IO.FileStream 类中来保持文件句柄。
IntPtr 类型符合 CLS,而 UIntPtr 类型却不符合。只有 IntPtr 类型可用在公共语言运行库中。UIntPtr 类型大多数是提供来维护与 IntPtr 类型之间的体系结构上的对称性。
此类型实现 ISerializable 接口。
------解决方案--------------------
我已前用Declare Function SendMessage& Lib "user32 " Alias "SendMessageA " (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
里面也有个Any,刚开始也老出错,后来才发现,你或者说函数具体需要什么类型你就申明成什么类型就可以了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
关于VB.net中的验证控件
小弟正在开发一个C/S结构程序,有几个界面有较多的textbox,是关于用户数据输入的,现在想做验证,听说有验证控...
-
多表查询问题
我有三个表,一个表为基本表,一个是代码表,一个是出差表
表一 编号,姓名 ,职别
001 李三 101
...
-
DATAGRIDVIEW无法删除未提交的新行?
再DATAGRIDVIEW录入时,想删除最后自动新增的一行,提示无法删除未提交的新行
Private Sub Dat...
-
迷茫了几天,求各位高手指教一下!下面是我的代码!
<!--#include file="webconfig.asp"-->
<%
Dim SortID
SortID=Trim(FLib.SafeSql(R...
-
vb.net 断开和连接网络连接 修改代码
在vb.net中实现断开和连接网络连接的代码,我在网上找了一段代码
Option Explicit On
'首...
-
DataGridView直接导出EXCEL
如何直接读取DataGridView中的数据,并导出成Excel可以直接读取的文件
记住,我不要通过DataTable。
希...
-
求教:如何在vb.net下做一些好看的界面,整一些好看的效果,改变控件,让控件变得好看点?
有没有点例子?有没有点直接可以做控件的软件?
---...
-
在VB中,对SQL数据库进行增删改语句怎么写呢?
小弟做课程设计,遇到了一点小麻烦,卡在了这里,不知道在VB中怎么写对SQL数据库的增删改...
-
文本框中的数字精确到小数点后两位
请问如何让文本框输入数字后精确到小数点后两位,如:当输入112时,显示为112.00
------解决方案--...
-
VB.NET2008如何利用SendMessage修改按钮的Text?
为了测试 Windows API ,试图点Button用SendMessage修改该按钮的Text,竟然没成功,请教...