首页 > 其他分享 >动态库dll编写经验

动态库dll编写经验

时间:2023-04-21 11:33:52浏览次数:38  
标签:isPointInPolygon dll GF 编写 动态 data Marshal

流程

(1)新建 dll 工程,空白工程即可

(2)编写 接口 代码

(3)添加 def 文件,用这个最省事


def 文件说明:

LIBRARY geos-function
EXPORTS
isPointInPolygon_GF

C# 调用 c++ 编写的动态库

注意 入口函数 的大小写,用 WinDbg 工具查看

[DllImport("geos-function.dll", EntryPoint = "isPointInPolygon_GF", ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
public static extern int isPointInPolygon_GF(int n, IntPtr pData);

调用关键代码,注意:参数字节大小,double是8个,同时注意 数组元素的长度:

            IntPtr data = Marshal.AllocHGlobal(8 * arrDataLen);
            Marshal.Copy(arrData, 0, data, arrDataLen);

            var ret = isPointInPolygon_GF(n, data);

            Marshal.FreeHGlobal(data);

标签:isPointInPolygon,dll,GF,编写,动态,data,Marshal
From: https://www.cnblogs.com/lvye1221/p/17339771.html

相关文章

  • gdb 加载动态库方法
    当GDB无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用setsysroot、setsolib-absolute-prefix、setsolib-search-path来指定库搜索路径。1.setsysroot与setsolib-absolute-prefix是同一条命令,实际上,setsysroot是setsolib-absolute-pref......
  • 手把手教你用Python操纵Word自动编写离职报告
    今日鸡汤不堪玄鬓影,来对白头吟。前言大家好,我是吴老板,今天给大家分享一篇Python自动化文章。Python是自动化处理的一把好手,比如自动编写离职申请!!!安装pipinstallpython-docx-ihttps://pypi.douban.com/simple/基本用法创建一个docx文档fromdocximportDocumentfromdocx.enu......
  • 7.数组动态创建和函数
    动态创建函数动态函数一维数组动态赋值int*data=newint[3];//动态分配地址for(inti=0;i<3;i++){data[i]=1;cout<<data[i]<<"";}delete[]data;//释放分配的·地址 二维数组动态分配地址int**d......
  • k8s编写cronjob
    1.k8s编写cronjob的知识点:通过sed对cronjob的yaml文件中的image属性进行替换:seds/old/new/gfile当old和new均为变量的时候,书写方式如下:sed-i's#'''$old_image'''#'''$new_image'''#g'quota-cronjob.yaml 2.cron......
  • 动态研发的技术原理与2种模式
    最近在看一些移动开发的文章,很多都在反复讲动态更新这个概念,其实换种讲法就是热更新,既然很多地方都在讲,作为一名“躺平”的开发者,必须再深入了解下具体的原理和模式。动态机制及技术原理动态研发模式就是一种基于云端的移动应用开发方法,主要能让开发者快速构建和发布多端的移动应用......
  • m厌氧间歇发酵动态控制系统matlab仿真,对比PID控制和MPC控制
    1.算法描述        生物发酵过程,其中稀释速率和供料基质浓度可作为操作变量。出口的细胞浓度或生物浓度、基质浓度以及产品浓度是过程的状态变量。例如在生产酒精的发酵过程中,是酵母浓度,是葡萄糖浓度,而是乙醇浓度。假设发酵培养基是单一均相生长的有机体,则广泛采用的非构......
  • 由于解决找不到vcruntime140_1.dll,无法继续执行代码重新安装程序可能会解决此问题
    vcruntime140_1.dll是vs2010编译的程序默认的库文件它的丢失易导致游戏、应用软件等程序运行出现错误无法运行打开,致使程序无法正常运行,它的解决办法也是非常简单的,下面小编把vcruntime140_1.dll丢失的详细解决办法分享给大家,亲测有效随便打开一个浏览器在顶部网页输入【dll修复程......
  • 编写你的第一个 Django 应用程序,第8部分
    本教程从教程7停止的地方开始。我们已经构建了我们的网络投票应用程序,现在将查看第三方软件包。Django的优势之一是丰富的第三方软件包生态系统。它们是社区开发的包,可用于快速改进应用程序的功能集。本教程将展示如何添加Django调试工具栏,一个常用的第三方包。近年来,Djang......
  • 由于找不到 XINPUT1_3.dll,无法继续执行代码。重新安装程序可能会解决此问题。
    ---------------------------EpicGamesLauncher.exe - 系统错误---------------------------由于找不到 XINPUT1_3.dll,无法继续执行代码。重新安装程序可能会解决此问题。 ---------------------------确定   --------------------------- 解决方法:安装最新DirectX。......
  • DyLoRA:使用动态无搜索低秩适应的预训练模型的参数有效微调
    又一个针对LoRA的改进方法:DyLoRA:Parameter-EfficientTuningofPretrainedModelsusingDynamicSearch-FreeLowRankAdaptationhttps://arxiv.org/pdf/2210.07558v2.pdfhttps://github.com/huawei-noah/KD-NLP/tree/main/DyLoRAPart1前言LoRA存在的问题:rank的值是固......