vb中api函数的常数如何声明???

jiang1 2000-03-24 09:46:00
各位高人:
请教一个问题:vb中api函数的常数如何声明???
比如:CreateFileMapping这个函数中的 flProtect 一项中有几个选项可设置
PAGE_READONLY,PAGE_READWRITE,PAGE_WRITECOPY,但它是"Long"的数据类型.
问题:这些值用api文本浏览器打开,在win32api中的常数定义中怎么没有??那应该怎样声明....


jiang1
3.24 9:46

...全文
203 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
RealTop 2000-03-25
  • 打赏
  • 举报
回复
VC中定义的PAGE_????为:
#define PAGE_NOACCESS 0x01
#define PAGE_READONLY 0x02
#define PAGE_READWRITE 0x04
#define PAGE_WRITECOPY 0x08
#define PAGE_EXECUTE 0x10
#define PAGE_EXECUTE_READ 0x20
#define PAGE_EXECUTE_READWRITE 0x40
#define PAGE_EXECUTE_WRITECOPY 0x80
#define PAGE_GUARD 0x100
#define PAGE_NOCACHE 0x200
#define PAGE_WRITECOMBINE 0x400
改成VB的声明,请按Janven提供的方法。
Janven 2000-03-24
  • 打赏
  • 举报
回复
教你一个方法,前提是你装了VC++,在VC中可以查找到PAGE_READONLY之类的16进制值,你就可以在标准模块中定义他们了。当然查找的目录选定VC下的Include目录。
定义方式的在函数声明之前。
Public Const PAGE_READONLY = &H4667(数字可是我乱编的)
Public Const PAGE_READWRITE= &H4668
Public Const PAGE_WRITECOPY= &H4669


nlh 2000-03-24
  • 打赏
  • 举报
回复
sample:
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Dim R As Integer
------------
R = ExitWindowsEx(1, 0)
详情可以从vb的api 察看器中 加载win32 api.txt.
good luck!
Un1 2000-03-24
  • 打赏
  • 举报
回复
到 VC 的 FindInFiles 菜单中去查找 PAGE_READONLY
MarsXia 2000-03-24
  • 打赏
  • 举报
回复
Such as:
Public Const PAGE_READONLY = ? ' "?" Is your value.

That's OK:)
大家都知道, Windows API是Windows操作系统的一系列的底层函数,是操作系统提供给用户进入操作系统核心进行高级编程的途径, 虽然微软在 Microsoft Visual Studio 6.0 及以下版本提供了一个用于API浏览的API Text Viewer, 不过功能十分简陋, 部分声明有错误, 而且提供不够充足;而在 Microsoft Visual Studio 7.0 (.net) 及以上版本为了达到跨平台、安全等一系列新特性,微软已经写好了一个内容丰富的受管制的代码类集合(.net基类库), 来完成以前要通过Windows API来完成的绝大多数任务, 虽然如此但还是有相当一部分功能必需调用Windows API来完成(如果你是VB.net或C#使用者, 强烈建议你尽可能使用.net基类库来完成你的工作); MSDN 只有部分API的使用帮助, 而且并没有可立即复制到IDEAPI声明, 要使用某个函数不但要很好的了解这个函数的调用方法, 而且需要手动把声明转换成相应语言的API声明方式。于是我就将自己以前写的API浏览软件进行了适当的改动,让它提供上面的需求。它与 Microsoft Visual Studio 6.0 自带的浏览器相比有如下增强: 1、函数、类型、常数可自由删除、添加、编辑。 2、自动代码整理功能可免去你把声明复制到IDE后还需手工整理的麻烦。 3、雷达功能,可查看任意窗口句柄与类名,可作编程时的辅助工具。 4、在函数能实现类型自动探测、搜索、添加。 5、在查询支持使用通配符"?"、"*"、"[]"、"[^]"来进行代替一个或多个字符,包含不包含指定字符来查询。 6、可直接将函数、类型、常数转换成VB.net/C#/易语言声明方式。 7、添加函数时可智能自动添加与函数相关的类型、注释, 添加类型时自动添加类型的类型, 类型常数, 常数常数功能, 大大加快了函数与相关类型、常数的复制添加速度。 8、可以根据功能分组浏览声明。   9、收藏夹功能,可将一组(功能相关)API声明添加到收藏夹。 10、颜色采集功能,可以采集当前屏幕上指定点的颜色。 11、可查看同api功能的.net类库。
VB 超强的API浏览器,带源码。   在VB.net、C#, 使用 DllImport 属性调用 Windows API, 请先使用 Imports 或 using 导入 System.Runtime.InteropServices 以简化声明的引用。 对于Any类型的转换,VB.NET/C# 不支持Any类型。如果你要把VB6式的API声明添加为VB.NET/C#支持的声明方式, 请使用特定的类型。在本软件对于有Any类型的函数添加时会提示你选择一种类型。在 Visual Basic 6.0 , Any类型的变量通常用于传递是字符串或 Null 的变量, 您可以通过声明两种(一种使用长型,一种使用字符串)来替换这种 Visual Basic 6.0 的用法。 易语言的函数、类型、常数声明是放在不同的地方的,不用分别复制, 只需全部复制, 任意粘贴到Dll命令、常量表、自定义数据类型声明处, 易语言会自动分开几种类型。 在声明C#结构体时如果结果体有数值数组类型, 结构体的这个成员会被声明成不安全代码, 若要正确编译代码 ,请在单击VS.net“项目”菜单“属性”菜单项, 在出来的选项卡上选择“生成”, 选那个选项卡的“允许不安全代码”项复选项, 这样才能正确编译。 VB.net与C#不支持类型(结构体)的某个变量同时是定长字符串与数组, 两者只能选其一。请自行计算出数组大小或用代码处理定长字符串的方式进行改写。   VB.net与C#的类型(结构体)如果有数组那么这个类型不能声明为类。

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧