C#调用C++的坑分析

技术C#调用C++的坑分析这篇文章主要介绍“C#调用C++的坑分析”,在日常操作中,相信很多人在C#调用C++的坑分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#调用C++的坑分析”

本文主要介绍“C#调用C的坑分析”。在日常操作中,相信很多人对C#调用C的坑分析有疑惑,边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“C#调用C的坑分析”的疑惑!接下来,请和边肖一起学习!

一般来说,C#调用C产生的dll如下:

c的项目应该设置为‘导出dll的项目’,导出的函数一般为:

extern ' c ' _ _ declspec(dllexport)intConvrnx(int format,rnxopt_topt,char*file,char * * ofile){ 0.}

制作一个C dll后,放在C#的生成目录中,也就是和放在一起。exe

和C#,以:

[DllImport('RtklibHelper.dll ',EntryPoint='Convrnx ',calling conventi on=calling conventi on。cdecl)])publicationstatexternintconvernx(int format,rnxopt_topt,stringfile,string[]of file){ 0.}

pit 1:C #的类型如何对应C的类型(比如字符串对应*char,字符串[]对应char**)

解决方案1:有一个神奇的工具叫CLRInsideOut,是微软写的:

C#调用C++的坑分析

比如C中的结构rnxopt_t,其中嵌套了结构snrmask_t,只需要用txt从上到下进行排序(C的语句写前写后都很特别),右边直接是C#代码;

坑2:在这台机器C#里调用C一切都好,只有放到另一台机器里:指定的模块找不到。(异常来自HRESULT:0x8007007E),各种搜索尝试(包括尝试安装Vs c环境)都无法奏效。

程序员直觉:肯定是C产生的dll,调用系统dll,其他电脑可能没有。

想法:找出这个dll调用了什么。

解决方案2:再次使用微软工具:

C#调用C++的坑分析

C#调用C++的坑分析

是的,这些是dll;

程序员直觉:这个东西肯定在c: \窗口。经过搜索,我发现:WINMM.dll有两个文件夹。是哪一个?

解决方法:搜索其他电脑,如果找不到就复制。

找出所有:

C#调用C++的坑分析

然后将其放在与exe相同的目录中;(根据C dll的自定义,动态库总是在当前目录和系统目录中找到,不需要一一放入目标计算机的对应文件夹中。)

至此,“C#调用C的坑分析”的学习结束,希望能解决大家的疑惑。理论和实践的结合可以帮助你学得更好。去试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/127477.html

(0)

相关推荐

  • 塑料三角烧瓶,三角烧瓶和三角瓶的区别

    技术塑料三角烧瓶,三角烧瓶和三角瓶的区别一塑料三角烧瓶、应用领域区别:1、三角瓶多用于生物培育菌种实验,有盖。2、三角烧瓶即锥形瓶是化学实验中常见仪器,多无盖,可加热,用于化学实验。
    二、外形区别:
    3、锥形瓶一般来说

    生活 2021年10月26日
  • php.ini状态设置在哪里(php.ini怎么配置)

    技术php.ini如何禁用方法这篇文章将为大家详细讲解有关php.ini如何禁用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 php.ini禁用方法:

    攻略 2021年12月19日
  • dna聚合酶作用部位,DNA聚合酶作用于什么位置

    技术dna聚合酶作用部位,DNA聚合酶作用于什么位置DNA聚合酶作用部位是磷酸二酯键。1、聚合作用:在引物RNA-OH末端dna聚合酶作用部位,以dNTP为底物,按模板DNA上的指令,即A与T,C与G的配对原则,逐步逐个

    生活 2021年10月23日
  • Python大神利用正则表达式教你搞定京东商品信息的示例分析

    技术Python大神利用正则表达式教你搞定京东商品信息的示例分析Python大神利用正则表达式教你搞定京东商品信息的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能

    攻略 2021年10月25日
  • 如何使用MySQL自动化运维工具goinception

    技术如何使用MySQL自动化运维工具goinception这篇文章主要讲解了“如何使用MySQL自动化运维工具goinception”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究

    攻略 2021年10月22日
  • 归并算法

    技术归并算法 归并算法归并算法采用了分而治之的思想,具体的内容懂的都懂,不懂的也不需要明白,看代码就完事了。
    public class guibing { public static int[]

    礼包 2021年12月9日