是否可以用Red编写Windows DLL?

 mobiledu2502875007 发布于 2023-02-08 16:51

我想为一些Windows应用程序编写一个插件,它必须是一个DLL.我真的很想尝试红色和红色/系统混合.但是在SO上询问Rebol&Red聊天室时,我对红色和红色/系统,红色/系统目前是否可能有不同的反应.什么是明确的答案?

1 个回答
  • 对的,这是可能的.您可以在Red-Blog上查看0.3.3的公告

    首先,这是一个描述Red/System过程的简短片段:

    共享lib生成

    自从一年以来,我们一直在努力实现共享库的生成,现在它可以在主分支中使用.添加了新功能以支持库生成,例如在加载和释放库时声明导出的符号和特殊回调函数的方法.以下是Red/System库的简单示例:

    Red/System [
        File: %testlib.reds
    ]
    
    inc: func [n [integer!] return: [integer!]][n + 1] 
    
    #export [inc]
    

    您可以使用新的-dlib命令行选项编译此类共享库:

    do/args%rsc.r"-dlib testlib.reds"

    输出二进制名称将具有特定于平台的后缀(.dll,.so或.dylib).

    其次,我终于能够得到一个简单的Red脚本来编译成.dll.#export您可以看到#system-global指令提供的指令需要位于Red/System上下文中.Red中的任何函数都需要用Red/System包装器包装.您可以使用#call以下操作完成此操作:

    Red []    
    
    hello: does [print "hello"]    
    
    #system-global [
            hellosystem: does [
                #call [hello]
            ]    
    
            #export cdecl [hellosystem]
    ]
    

    2023-02-08 16:54 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有