递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 3365|回复: 5
打印 上一主题 下一主题

[视窗] 请教关于调用DLL的问题

[复制链接]

5

主题

39

帖子

163

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
163
跳转到指定楼层
楼主
发表于 2024-6-9 01:51:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 EZDD 于 2024-6-9 02:05 编辑

.版本 2

.DLL命令 GetLocalTime, 整数型, "kernel32", "GetLocalTime", , ,
    .参数 系统时间格式, SYSTEMTIME, 传址

.版本 2

.数据类型 SYSTEMTIME, , SYSTEMTIME
    .成员 wYear, 短整数型, , , wYear
    .成员 wMonth, 短整数型, , , wMonth
    .成员 wDayOfWeek, 短整数型, , , wDayOfWeek
    .成员 wDay, 短整数型, , , wDay
    .成员 wHour, 短整数型, , , wHour
    .成员 wMinute, 短整数型, , , wMinute
    .成员 wSecond, 短整数型, , , wSecond
    .成员 wMilliseconds, 短整数型, , , wMilliseconds




新手刚需,请问在火山中如何调用,麻烦给个例子,拜托
回复

使用道具 举报

28

主题

2212

帖子

8000

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8000
沙发
发表于 2024-6-9 11:42:55 | 只看该作者
本帖最后由 Xelloss0618 于 2024-6-9 12:04 编辑

<火山程序 类型 = "通常" 版本 = 1 />

类 SYSTEMTIME <公开 基础类 = 本地结构模板 注释 = "新版的别名封装结构体(需要头文件)" @别名 = "SYSTEMTIME" @模板实现类 = "">
{
    变量 年 <公开 类型 = 短整数 注释 = "1601-30827" @输出名 = "wYear">
    变量 月 <公开 类型 = 短整数 注释 = "1-12" @输出名 = "wMonth">
    变量 周 <公开 类型 = 短整数 注释 = "0-6,0为星期天" @输出名 = "wDayOfWeek">
    变量 日 <公开 类型 = 短整数 注释 = "1-31" @输出名 = "wDay">
    变量 时 <公开 类型 = 短整数 注释 = "0-23" @输出名 = "wHour">
    变量 分 <公开 类型 = 短整数 注释 = "0-59" @输出名 = "wMinute">
    变量 秒 <公开 类型 = 短整数 注释 = "0-59" @输出名 = "wSecond">
    变量 毫秒 <公开 类型 = 短整数 注释 = "0-999" @输出名 = "wMilliseconds">

    方法 取本地时间1 <公开 静态 注释 = "DLL表格" @输出名 = "GetLocalTime" @视窗.输入 = "Kernel32.dll">
    参数 lpSystemTime <类型 = SYSTEMTIME>

    方法 取本地时间2 <公开 静态 注释 = "嵌入式">
    参数 SystemTime <类型 = SYSTEMTIME>
    {
        @ ::GetLocalTime(&@<SystemTime>);
    }
}

类 SYSTEMTIME2 <公开 注释 = "结构类封装结构体(不需要头文件,但低效)" @视窗.结构类 = 0>
{
    变量 年 <公开 类型 = 短整数 注释 = "1601-30827">
    变量 月 <公开 类型 = 短整数 注释 = "1-12">
    变量 周 <公开 类型 = 短整数 注释 = "0-6,0为星期天">
    变量 日 <公开 类型 = 短整数 注释 = "1-31">
    变量 时 <公开 类型 = 短整数 注释 = "0-23">
    变量 分 <公开 类型 = 短整数 注释 = "0-59">
    变量 秒 <公开 类型 = 短整数 注释 = "0-59">
    变量 毫秒 <公开 类型 = 短整数 注释 = "0-999">

    方法 取本地时间1 <公开 静态 注释 = "DLL表格" @输出名 = "GetLocalTime" @视窗.输入 = "Kernel32.dll">
    参数 lpSystemTime <类型 = SYSTEMTIME2 @视窗.输出参数 = 真>

    方法 取本地时间2 <公开 静态 注释 = "嵌入式">
    参数 SystemTime <类型 = SYSTEMTIME2>
    {
        @ SYSTEMTIME st;
        @ ::GetLocalTime(&st);
        @ @<SystemTime>.SetStruct((@pdt<SystemTime>::S*)&st);
    }
}
回复

使用道具 举报

75

主题

1136

帖子

5154

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5154
板凳
发表于 2024-6-9 11:52:43 | 只看该作者
==':'+'@'
回复

使用道具 举报

53

主题

628

帖子

2662

积分

禁止发言

积分
2662
地板
发表于 2024-6-9 19:48:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

28

主题

2212

帖子

8000

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8000
5#
发表于 2024-6-9 20:26:52 | 只看该作者
呵呵仙8 发表于 2024-6-9 19:48
谢谢,原来如此!如果@输出名 =没有,结构体还有效吗?结构体套结构体,或更多层套结构体.会不很烧脑? ...

使用别名必须有头文件,输出名也必须跟头文件里定义的名称一样。
结构体嵌结构体,有两种写法,第一种就是定义子结构体的别名,第二种就是直接在输出名里填"子结构体变量名称.成员"。
联合体也同样适合用别名封装。
回复

使用道具 举报

53

主题

628

帖子

2662

积分

禁止发言

积分
2662
6#
发表于 2024-6-9 20:36:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-4-30 10:16 , Processed in 0.083568 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表