递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

11

帖子

38

积分

新手上路

Rank: 1

积分
38
跳转到指定楼层
楼主
发表于 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




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

使用道具 举报

26

主题

1566

帖子

5855

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5855
沙发
发表于 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);
    }
}
回复

使用道具 举报

62

主题

859

帖子

3823

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

50

主题

509

帖子

2060

积分

金牌会员

Rank: 6Rank: 6

积分
2060
地板
发表于 2024-6-9 19:48:41 | 只看该作者
Xelloss0618 发表于 2024-6-9 11:42
类 SYSTEMTIME
{
    变量 年

谢谢,原来如此!如果@输出名 =没有,结构体还有效吗?结构体套结构体,或更多层套结构体.会不很烧脑?
回复

使用道具 举报

26

主题

1566

帖子

5855

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

50

主题

509

帖子

2060

积分

金牌会员

Rank: 6Rank: 6

积分
2060
6#
发表于 2024-6-9 20:36:30 | 只看该作者
Xelloss0618 发表于 2024-6-9 20:26
使用别名必须有头文件,输出名也必须跟头文件里定义的名称一样。
结构体嵌结构体,有两种写法,第一种就 ...

嗯,谢谢!应该是明白了,加头文件就是让火山编译为c++代码时,自动加入结构体所在头文件和声明.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-22 04:15 , Processed in 0.093508 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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