国外功能加载

国外功能加载[图书馆乐趣{参数类型1参数类型2}翻新]

加载函数乐趣使用库中指定的参数和输出类型图书馆.

国外功能加载[脉冲重复频率{参数类型1参数类型2}翻新]

从函数指针创建外部函数脉冲重复频率.

细节

  • 国外功能加载返回外国职能对象。
  • 图书馆用解决查找库.
  • 图书馆必须是C兼容的动态库。
  • 支持的类型通常与Wolfram编译器.
  • 可能的参数和返回类型及其对应的C类型包括:
  • “无符号整数8”单位8_t无符号8位整数
    “整数8”整数8_t有符号8位整数
    “无符号整数16”单位16_t无符号16位整数
    “整数16”整数16_t带符号16位整数
    “未签名的整数32”单位32_t无符号32位整数
    “整数32”整数32_t带符号32位整数
    “无符号整数64”单位64_t无符号64位整数
    “整数64”整数64_t带符号64位整数
    “CUnsignedChar”无符号字符C兼容的无符号字符
    “CSignedChar”带符号字符C兼容签名字符
    “CUnsignedShort”无符号短C兼容无符号短
    “CShort”(短)短的C兼容短
    “CUnsignedInt”无符号整型C兼容无符号int
    “CInt”(CInt)整数C兼容int
    “CUnsignedLong”无符号长C兼容无符号长
    “CLong”(CLong)长的C兼容长
    “CSizeT”尺寸_tC兼容尺寸_t
    “CFloat”(CFloat)浮动C兼容浮子
    “C双倍”双重的C兼容双
    “不透明原始指针”空隙*不透明指针
    “原始指针”::[t吨]t吨*类型化指针
    {第y天1第y天2}结构{第y天1 (f)1;第y天2 (f)2;}结构或产品类型
    “无效”空隙无输出(仅在输出类型中)
  • 结构或产品类型也可以写成“ListTuple”::[第y天1第y天2 ].
  • 国外功能加载[脉冲重复频率]脉冲重复频率必须是不透明原始指针指向库中的有效函数。

示例

全部打开全部关闭

基本示例  (1)

从库中加载函数:

调用函数:

范围  (2)

国外功能加载使用查找库要查找库,请执行以下操作:

或者,使用查找库并将其传递给国外功能加载:

获取指向库中函数的指针:

通过使用函数指针并指定其类型来加载外部函数:

应用  (2)

从OpenSSL为RAND_bytes函数创建外部函数:

创建可以写入随机字节的缓冲区:

通过调用RAND_bytes生成随机字节:

读取输出:

打包到函数中:

外部功能非常有效:

使用OpenSSL实现SHA256:

创建包含要散列的明文的缓冲区:

创建要向其中写入哈希的缓冲区:

执行哈希:

从密文缓冲区读取结果:

与内置功能进行比较搞砸:

打包到函数中:

打包的功能非常有效:

属性和关系  (1)

国外功能加载通常可以比编译自定义链接更快地创建指向库的可调用链接:

但是,自定义编译版本的开销可能较小:

可能的问题  (3)

如果库不存在失败返回:

如果函数不存在失败返回:

国外功能加载将返回$失败如果不支持类型:

Wolfram Research(2023),ForeignFunctionLoad,Wolfram Language函数,https://reference.wolfram.com/language/ref/ForeignFunctionLoad.html。

文本

Wolfram Research(2023),ForeignFunctionLoad,Wolfram Language函数,https://reference.wolfram.com/language/ref/ForeignFunctionLoad.html。

CMS公司

沃尔夫拉姆语言。2023.“ForeignFunctionLoad”。Wolfram语言与系统文档中心。Wolfram研究。https://reference.wolfram.com/language/ref/ForeignFunctionLoad.html。

亚太地区

沃尔夫拉姆语言。(2023). ForeignFunctionLoad。Wolfram语言与系统文档中心。检索自https://reference.wolfram.com/language/ref/ForeignFunctionLoad.html

BibTeX公司

@misc{reference.wolfram_2024_foreignfunctionload,author=“wolfram Research”,title=“{foreignfunctionload}”,year=“2023”,howpublished=“\url{https://reference.wolfram.com/language/ref/foreignfunctionload.html}”]}

BibLaTeX公司

@在线{reference.wolfram_2024_foreignfunctionload,organization={wolfram Research},title={foreignfunctionload},年份={2023},url={https://reference.wolfram.com/language/ref/foreignfunctionload.html},注意=[访问时间:2024年5月21日]}