首页 > 其他分享 >支持尽力而为的native函数调用

支持尽力而为的native函数调用

时间:2023-07-03 13:22:26浏览次数:35  
标签:调用 string 尽力而为 SR 函数调用 支持 native 函数

起因

C#函数中没有显示native线程id的,只能显示managedThreadId,如果想显示nativeThreadId就需要通过PInvoke调用natvie函数。但windows的native函数,放到linux就无法支持。这里我们不希望通过复杂的预处理指令来达到效果。

需求

这里我们希望的效果是,不通过预处理指令就能够实现:如果当前的平台能够支持这个函数,我们就调用这个函数,如果不支持,那就当没调用这个效果。

解决方案

如果使用了 DllImport注解,运行时Runtime 会调用 NativeLibrary.LoadLibraryByName加载对应的library,如果加载出错则会抛出异常。

public void Throw(string libraryName)
{
    if (_errorCode == Interop.Errors.ERROR_BAD_EXE_FORMAT)
    {
        throw new BadImageFormatException();
    }

    string message = Interop.Kernel32.GetMessage(_errorCode);
    throw new DllNotFoundException(SR.Format(SR.DllNotFound_Windows, libraryName, message));
}

因此我们只需要catch DllNotFoundException异常即可。 这里SR应该是string resources的缩写。

标签:调用,string,尽力而为,SR,函数调用,支持,native,函数
From: https://www.cnblogs.com/dewxin/p/17522464.html

相关文章

  • react-native项目启动报错 Error: `fsevents` unavailable (this watcher can only be
    react-native项目启动报错——watchman安装问题(macpro) LookingforJSfilesin/Users/你的名称/Documents/project/文件夹名Loadingdependencygraph.../Users/你的名称/Documents/project/文件夹名/node_modules/metro/node_modules/sane/src/fsevents_watcher.js:37......
  • update-alternatives 的基本用法
    update-alternatives是Ubuntu的软件多版本管理工具,基本用法为,update-alternatives--install<link><name><path><priority>[--force]例如,我要创建一个符号链接/usr/bin/cmake,它指向实际安装路径/usr/local/bin/cmake,则可以使用如下命令,sudoupdate-alternatives......
  • 记一次Native memory leak排查过程
    1问题现象路由计算服务是路由系统的核心服务,负责运单路由计划的计算以及实操与计划的匹配。在运维过程中,发现在长期不重启的情况下,有TP99缓慢爬坡的现象。此外,在每周例行调度的试算过程中,能明显看到内存的上涨。以下截图为这两个异常情况的监控。TP99爬坡内存爬坡机器配置......
  • spring boot graalvm native 试用
    核心是体验下新版本支持情况同时体验下企业特性(g1gc)参考示例就是基于springstart提供的web,添加了graalvmnative构建支持,graalvmoracle发行版直接可以官方下载pom.xml核心信息<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apach......
  • graalvm native-image jfr 试用
    graalvm最近license许可模型的修改,对于我们使用graalvm增加了不少信心,尤其是以前需要企业订阅的一些特性以下是一个简单的jfr试用代码&构建代码来自官方文档,主要是试用下,对于graalvm直接可以免费下载企业版了,同时需要安装visualvm代码JFRDemo.java im......
  • 2022 年 React Native 的全新架构更新
    个人前言熟悉我的人应该知道,虽然现在我一直主力于Flutter,但是GSYApp系列项目最早其实是ReactNative,之后才是Weex和Flutter,所以其实我对RN一直有着“初恋”的情节,基本上是它带着我走进前端和跨平台的领域,而恰巧最近看到了关于它的消息,就顺便了解下多年后它又有什么......
  • 【快应用】nativeAd.onStatusChanged和nativeAd.onDownloadProgress接口正确监听广告
    【关键词】原生广告、下载监听、状态返回【问题背景】快应用接入原生广告后,通过nativeAd.onStatusChanged和nativeAd.onDownloadProgress接口来监听广告下载状态和进度,但是在广告触发下载后,没有回调返回。该如何解决?代码:showNativeAd(){nativeAd=ad.createNativeAd({a......
  • react-native 调用系统原生分享
    调用手机系统原生分享如下图 使用: react-native-sharereact-native-share官网......
  • 基于ChatGPT函数调用来实现C#本地函数逻辑链式调用助力大模型落地
    6月13日OpenAI官网突然发布了重磅的ChatGPT更新,我相信大家都看到了,除了调用降本和增加更长的上下文版本外,开发者们最关心的应该还是新的函数调用能力。通过这项能力模型在需要的时候可以调用函数并生成对应的JSON对象作为输出。这使开发人员能更准确地从模型获取结......
  • /usr/bin/java -> /etc/alternatives/java
    [root@localhosteclipse]#whichjava/usr/bin/java[root@localhosteclipse]#ls-l/usr/bin/javalrwxrwxrwx1rootroot22Aug12012/usr/bin/java->/etc/alternatives/java[root@localhosteclipse]#ls/etc/alternatives/antlr......