问题标签 [nativecall]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - 将复杂结构传递给 Windows API
我正在尝试GetConsoleScreenBufferInfo(HANDLE, PCONSOLE_SCREEN_BUFFER_INFO)
使用 Perl 6 和(当然)NativeCall 的 Windows API 中的函数。
我想我已经正确设置了CONSOLE_SCREEN_BUFFER_INFO
函数所需的结构,但是当我尝试转储其内容时,代码在调用后崩溃。
这是演示问题的最短(不完全但接近)方法:
任何有关崩溃发生原因以及如何修复它的提示都非常受欢迎。
raku - 如何使用 NativeCall 从 Perl 6 正确使用 libXL?
我尝试将 Perl 6(最新版本)中的 libXL 与NativeCall
.
我无法让 utf-8 正确保存创建的 xlsx 文件。
只有CArray[uint16]
似乎有效, Str 也没有编码('utf8'),也没有CArray[uint8]
.
最好的结果是保存工作簿、工作表名称和文本;但它们通常以特殊符号结尾。即使设置密钥也“经常”工作。
我的猜测是需要 utf-8 但CArray[uint16]
总是给出两个字节,而 utf-8 是一种动态格式。我的猜测也是,我对 libXL.dll 的签名可能是错误的。
我还尝试了适用于 xls 的函数的 A-DLL 版本,但我想获得 xlsx(XML 格式)。
我尝试更改子签名NativeCall
并尝试不同格式的给定变量。
- 有时,什么都没有保存,并且代码从 Perl 6 以非 0 代码结束
- 有时,文件名以特殊字符结尾(可能取决于编号)
- A 函数 (ASCII) 确实有效
raku - 如何为返回整个结构的 C 函数编写 Raku 声明?
我有这个 C 代码:
C 函数返回一个完整的结构,而不仅仅是一个指针,所以我不能将 Raku 声明写为:
有什么建议吗?
raku - 通过 NativeCall 在 Raku 中使用 void 结构
我正在尝试链接libzip
到 Raku,它使用 voidstruct
或没有主体的结构,如下所示:
我以同样的方式在我的 Raku 程序中声明它:
这失败了:
我发现该错误的唯一参考是在 MyHTML中的这个未解决的问题中。这可能会使其回归,但我真的不确定。任何的想法?
docker - 在 Raku 中通过 NativeCall 调用 GSL 函数会引发错误
问题
我试图从 raku调用GSL中 chisq 函数的累积分布函数。
这是我的乐脚本chisq.raku
执行此脚本时,出现以下错误:
通过阅读有关NativeCall的文档,我包括了共享库libgsl.so
。
谷歌搜索显示cblas_ctrmv
可能(不确定)与lapack相关。
所以我搜索了liblapack.so
里面确实存在的/usr/lib
。
echo $LD_LIBRARY_PATH
显示
为了查看是否可以修复它,我添加/usr/lib
了LD_LIBRARY_PATH
with 命令export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
并尝试再次运行该脚本。
仍然无法正常工作,同样的错误信息。
环境:
我正在rstudio 内的 docker 容器中运行代码。
乐版 2019.11
它有gsl-dev
文件和gsl
库。libgsl.so
容器内部有共享库/usr/lib/x86_64-linux-gnu/
。此文件夹内的其他共享库是
有没有办法让它工作?
raku - Raku/Perl6:如何使用 NativeCall 编写 NULL
https://docs.perl6.org/language/nativecall
https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regqueryvalueexw
使用“native”,如何满足“NULL”要求?
“int32”返回:
非常感谢,-T
raku - Raku:如何为 CArray[WCHAR] 赋值?
$ raku -v 这是基于 MoarVM 版本 2019.07.1 构建的 Rakudo 版本 2019.07.1
以下是在 Raku REPL 上完成的。我在这里做错了什么?如何为 CArray[WCHAR] 赋值?
我希望 $lpData[0] 为 0xABCD,$lpData[1] 为 0xEF12。
非常感谢,-T
raku - 如何在使用 NativeCall 的 Raku 发行版中捆绑 C 源代码?
我正在为 C 库编写 Raku 绑定,但我不想要求 Raku 代码的用户自己安装 C 库,我想将 C 代码捆绑为分发的一部分(它不是那么广泛分布式库)。
我读过有关发行版的信息%?RESOURCES
,这似乎很有用。但我对如何应用它的具体细节很模糊。
我可以在发行版中捆绑 C 源代码,并指定某种方式将其编译为安装的一部分(例如 with zef
)吗?还是我需要捆绑库的预编译版本,并让代码根据平台选择正确的版本?
或者这根本不可能,我应该只向用户说明如何单独安装库?
raku - cglobal() 与“my”或“our”变量一起使用时表现不同
我发现了一些我无法解释的东西,所以我把它打到了我认为的最低限度:
为什么声明为的变量my
似乎our
包含不同类型的数据?
文档中没有暗示这种行为,这对我来说是出乎意料的。