| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2223 人关注过本帖
标题:VFP调用外部函数问题
只看楼主 加入收藏
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
define class 定义类 ?

个性太多,无法显示
2013-05-17 09:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
是的

授人以渔,不授人以鱼。
2013-05-17 09:25
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
能不能举个可用的例子
我之前也想这么用过
但一直没有成功

个性太多,无法显示
2013-05-17 09:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你想要怎样的例子,楼主的问题也没有上传相应的DLL。

授人以渔,不授人以鱼。
2013-05-17 09:30
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
调用带结构体参数的windows api就可以
随便哪个函数都行

个性太多,无法显示
2013-05-17 09:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
CLEAR ALL
CLEAR
DECLARE GetSystemInfo IN WIN32API String @
cBuffer = SPACE(40)
GetSystemInfo(@cBuffer)
SystemInfo = CREATEOBJECT("_SystemInfo", @cBuffer)
? "处理器类型: " + TRANSFORM(SystemInfo.ProcessorType)
? "处理器个数: " + TRANSFORM(SystemInfo.NumberOfProcessors)
? "处理器架构: " + SystemInfo.ProcessorArchitecture
? "内存页大小: " + TRANSFORM(SystemInfo.PageSize)
? "可用内存起始地址: " + TRANSFORM(SystemInfo.MinimumApplicationAddress)
? "可用内存结束地址: " + TRANSFORM(SystemInfo.MaximumApplicationAddress)
RETURN 

DEFINE CLASS _SystemInfo AS Custom

    OemID = SPACE(4)
    ProcessorArchitecture = ""
    PageSize = 0
    MinimumApplicationAddress = 0
    MaximumApplicationAddress = 0
    ActiveProcessorMask = SPACE(4)
    NumberOfProcessors = 0
    ProcessorType = 0
    AllocationGranularity = SPACE(4)
    ProcessorLevel = SPACE(2)
    ProcessorRevision = SPACE(2)
   
    PROCEDURE Init(tcString)
        WITH This
            .NumberOfProcessors = CTOBIN(SUBSTR(tcString, 21, 4), "4RS")
            .ProcessorType = CTOBIN(SUBSTR(tcString, 25, 4), "4RS")
            LOCAL lnTemp
            lnTemp = CTOBIN(SUBSTR(tcString, 7, 2), "2RS")
            DO CASE
                CASE lnTemp == 0
                    .ProcessorArchitecture = "INTEL"
                CASE lnTemp == 6
                    .ProcessorArchitecture == "IA64"
                CASE lnTemp == 9
                    .ProcessorArchitecture = "AMD64"
                otherwise
                    .ProcessorArchitecture = "UNKNOWN"  
            ENDCASE
            .PageSize = CTOBIN(SUBSTR(tcString, 9, 4), "4RS")
            .MinimumApplicationAddress = CTOBIN(SUBSTR(tcString, 13, 4), "4RS")
            .MaximumApplicationAddress = CTOBIN(SUBSTR(tcString, 17, 4), "4RS")
        ENDWITH
    ENDPROC
   
ENDDEFINE

授人以渔,不授人以鱼。
2013-05-17 12:41
jxwcy
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-5-16
收藏
得分:0 
我的这个DLL是一个外部设备带的,其他机器无法测试,是通过这个外设取得一些信息以这个结构传递给调用者。我就是想问在VFP里怎么实现这种结构,并且调用的时候参数传递上要注意些什么。我用STRING类型试过,只能取到第一个变更name的数据,之后就报错,我猜测是不是结构在存储时有分隔符,string读不到后面的
2013-05-17 12:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
C字符串当然有分隔符。看看你的代码。

授人以渔,不授人以鱼。
2013-05-17 12:50
jxwcy
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-5-16
收藏
得分:0 
看哪个代码?DLL的?厂家没给
2013-05-17 12:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看你使用的代码,你自己描述的不清楚。

授人以渔,不授人以鱼。
2013-05-17 12:59
快速回复:VFP调用外部函数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026334 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved