社区
VFP
帖子详情
请问如何调用API
jllemon
2010-10-12 10:43:00
如何用VFP调用API并应用呢?网上的一些资料讲的不是很详细,
希望能结合例子详细点。
谢谢。
...全文
73
7
打赏
收藏
请问如何调用API
如何用VFP调用API并应用呢?网上的一些资料讲的不是很详细, 希望能结合例子详细点。 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jllemon
2010-10-12
打赏
举报
回复
谢谢!
jllemon
2010-10-12
打赏
举报
回复
非常感谢,谢谢!
十豆三
2010-10-12
打赏
举报
回复
例如上面的例子也可以这样,即用声明成另一个别名:
Clear
Declare Integer GetActiveWindow In WIN32API
As MyGetActiveWindow
Wait Window "现在您可以切换到另一个应用程序了" Timeout 5
?
MyGetActiveWindow
( )
十豆三
2010-10-12
打赏
举报
回复
[Quote=引用 3 楼 jllemon 的回复:]
DLL 函数名可以与 Win32 API 手册中规定的不同。例如,MessageBox 函数应该命名为 MessageBoxA (对于单字节字符)和 MessageBoxW (对于 UNICODE)。如果 Visual FoxPro 不能定位 FunctionName 指定的 DLL 函数,则将字母 A 追加到函数名尾部,并且 Visual FoxPro 用新的函数名重新搜索。
这段……
[/Quote]
可以声明为 别名。
jllemon
2010-10-12
打赏
举报
回复
DLL 函数名可以与 Win32 API 手册中规定的不同。例如,MessageBox 函数应该命名为 MessageBoxA (对于单字节字符)和 MessageBoxW (对于 UNICODE)。如果 Visual FoxPro 不能定位 FunctionName 指定的 DLL 函数,则将字母 A 追加到函数名尾部,并且 Visual FoxPro 用新的函数名重新搜索。
这段话有个疑问,DLL函数从WIN32 API中调用,函数名应该与WIN32 API中函数名相同,不同步是找不到无法调用吗?
jllemon
2010-10-12
打赏
举报
回复
感谢感谢!
十豆三
2010-10-12
打赏
举报
回复
来自 VFP 自带帮助文件
DECLARE - DLL 命令
注册一个外部共享库中的函数。库是 32-位动态链接库文件(.DLL)。
DECLARE [cFunctionType] FunctionName IN LibraryName [AS AliasName]
[cParamType1 [@] ParamName1, cParamType2 [@] ParamName2, ...]
参数
cFunctionType
如果有返回值,则表明共享库返回值的数据类型。如果函数没有返回值,则省略 cFunctionType。
cFunctionType 可以是以下值: cFunctionType 说明
SHORT 16-位 整数
INTEGER 32-位 整数
SINGLE 32-位 浮点数
DOUBLE 64-位 浮点数
LONG 32-位 长整数
STRING 字符串
OBJECT IDispatch 对象类型 *NEW
FunctionName
指定 Visual FoxPro 中要注册的共享库函数名。该参数中传递的函数名要求区分大小写。注意:
DLL 函数名可以与 Win32 API 手册中规定的不同。例如,MessageBox 函数应该命名为 MessageBoxA (对于单字节字符)和 MessageBoxW (对于 UNICODE)。如果 Visual FoxPro 不能定位 FunctionName 指定的 DLL 函数,则将字母 A 追加到函数名尾部,并且 Visual FoxPro 用新的函数名重新搜索。
如果指定的共享库函数与一个 Visual FoxPro 函数同名,或函数名不是一个合法的 Visual FoxPro 名,当注册此函数时,将用 AS 子句分配一个别名,这点在后面将要说明。也可以用 OBJECT 作为一个返回值,例如"DECLARE OBJECT myfunc IN some DLL ..." 虽然 COM 通常没有任何这种格式的 API 。例如: DECLARE INTEGER AccessibleObjectFromWindow IN oleacc.dll ;
integer, integer, string , object @
IN LibraryName
指定外部共享库名,其中包含用 FunctionName 指定的函数。如果为 LibraryName 指定 WIN32API,则 Visual FoxPro 在Kernel32.dll, Gdi32.dll, User32.dll, Mpr.dll, 和 Advapi32.dll 中搜索 32-位 Windows .dll 函数。
AS AliasName
为一个与 Visual FoxPro 函数同名或不合法的共享库函数名,指定一个别名。AliasName 不能是 Visual FoxPro 保留字或已经由 Visual FoxPro 注册的共享库函数名。如果给函数指定了别名,可以用别名调用共享库函数。AliasName 不区分大小写。
cParameterType1[@] ParamName1, cParameterType2[@] ParamName2, ...
指定传递给共享库函数的参数类型。共享库函数由 cParameterType 指定需要的参数类型。cParameterType 可以为以下某一类型: cParameterType 说明
INTEGER 32-位 整数
SINGLE 32-位 浮点数
DOUBLE 64-位 浮点数
LONG 32-位 长整数
STRING 字符串
如果参数不是共享库中的函数所希望的类型,Visual FoxPro 产生一条错误。Null 值可以传递一个空的字符串。调用函数时,若按引用传递一个参数,必须在这条命令的参数 cParameterType 后面、调用函数相应变量的前面,包含(@)标记。 如果在 DECLARE 中或在调用函数中没有包含 @,参数就按值传递。有关需要按引用传递参数的共享库函数的详细内容,请参见您的操作系统或环境的程序员指南(例如,为了获得传递参数到Windows DLL 时的信息,可翻阅 Microsoft Win32 程序员指南)。注意:
参数名 ParamName1, ParamName2, 等等是可选的,Visual FoxPro 或共享库函数并不使用它们。可以包含它们作为函数接收的参数名和参数类型的提示。
说明
在 Visual FoxPro 中调用一个共享库函数前,必须发出带有函数名、包含该函数的共享库名以及函数将要接收的参数类型的 DECLARE 命令。
为了提供向后兼容性,Visual FoxPro 仍然支持使用 SET LIBRARY 命令调用外部 API 库。(使用 SET LIBRARY,您可以访问 Foxtools.fll 中的函数。)但是,使用 DECLARE 是注册共享库函数的首选方法。
虽然 Visual FoxPro 添加了 OBJECT cFunctionType 到这个命令,但其主要是用于支持一些 ActiveX Accessibility API 例程,一般可以用于其它 Windows API 例程中。
有关调用共享库函数的更多信息,请参见您的操作系统或环境的程序员指南(例如,为了获得调用 DLL 的信息,可翻阅 Microsoft Win32 程序员指南)。
执行 DISPLAY STATUS 或 LIST STATUS 可显示已注册的函数名。执行 CLEAR ALL 或 CLEAR DLLS 可从内存中删除已注册的函数。
示例
这个示例用来为 Visual FoxPro 返回当前活动的 Windows 窗口句柄,或者如果您切换到其它 Windows 应用程序返回 0 。当显示 WAIT 窗口时,可在 5 秒内按下 ALT+TAB ,来切换到不同的 Windows 应用程序,或您可以作为活动的应用程序离开 Visual FoxPro。
CLEAR
DECLARE INTEGER GetActiveWindow IN win32api
WAIT WINDOW "现在您可以切换到另一个应用程序了" TIMEOUT 5
? GetActiveWindow( )
C++
调用
百度地图
API
通过C++代码
调用
百度地图
API
,一个简单实用的百度地图操作实例,希望能给大家带来帮助。
HTML5
调用
手机摄像头拍照
HTML5 The Media Capture
API
提供了对摄像头的可编程访问,用户可以直接用getUserMedia获得摄像头提供的视频流。具体内容参考: http://blog.sina.com.cn/s/blog_4ad7c2540101lnak.html
JNA3.09
API
参考手册.chm
JNA3.09
API
参考手册.chm 是我制作的JNA类库3.09版的Java
API
参考手册。方便查找。 JNA是最新的Java平台上
调用
动态链接库.dll/.so的类库。是JNI终结者。
C#自动化测试工具编写(借助
API
)
在日常编码过程中,我们常常会进行自动化测试。这里的自动化测试不是指单元测试,而是模拟人工输入来进行快速的、高并发的测试。可以使用的自动化工具有LOADRUNNER,以及目前在VS2010中的功能很强大的测试工作平台(录制操作步骤,自动生成代码)。但是,这些工具的熟练掌握也有一定的时间成本,并且,最主要的,对于一个程序员来说,那不够灵活。所以,比较高效的一个做法是,
调用
WINDOWS
API
,自己动手写编码来实现。
jQuery EasyUI 1.4.4 离线简体中文
API
文档 含完整开发工具包+皮肤+扩展+演示
本次更新内容主要是BUG修复和功能改进,相隔4个月又发布了新版本,这次更新更像是例行公事,不过好在修复了很多BUG,另外需要说一下,EasyUI框架当中其实官方还隐藏了不少
API
没有开放出来,有些朋友建议我把整理一下,将一些好用的
API
及其用法也更新到中文
API
中,这里我想说的是,有些
API
或许是因为不稳定、尚有BUG、未完全实现或者是未经过完整测试的,所以官方并未公布出来,因此我也不建议大家大面积的去使用,这样会带来很多不稳定因素,甚至是致命的BUG,这也是我没有将这些
API
写入中文
API
文档的原因,所以有能力并且需要的人就自行去源代码中挖掘吧,我这里只同步官网的
API
(外加少许的变动或者不影响稳定性和安全性的新增内容)。 jQuery EasyUI 1.4.4版本更新内容: Bug(修复) filebox:修复“clear”和“reset”方法在IE9下无法正常工作的问题; messager:修复
调用
无参的$.messager.progress()方法之后,再
调用
$.messager.progress('close')方法时无法正常工作的问题; timespinner:修复在IE8中点击微调按钮时无法正确显示值的问题; window:修复在“onMove”事件中
调用
“options”方法时无法正常显示的问题; treegrid:修复“getLevel”方法无法接受为0的参数值的问题。 Improvement(改进) layout:改进后的“collapsedContent”、“expandMode”和“hideExpandTool”属性可以支持区域面板; layout:改进后的“hideCollapsedContent”属性可以在折叠面板上设置显示垂直标题栏; layout:新增“onCollapse”、“onExpand”、“onAdd”、“onRemove”事件; datagrid:在排序列的标题上显示↑↓图标; datagrid:新增“gotoPage”方法; propertygrid:新增“groups”方法,以允许获取所有数据租; messager:在显示长消息的的时候支持对消息进行自动滚动; tabs:“disabled”属性支持定义一个被禁用的选项卡面板; tabs:支持百分比大小。
VFP
2,748
社区成员
29,140
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章