先说出错原因:    堆栈调用顺序 

解决办法:     使用   __stdcall 或 使用C#属性 CallingConvention

起因是我想在c#中调用c函数结果出错了

如下

C 头文件

 #define DLLExport extern "C" __declspec(dllexport)DLLExport int func(int a, int b);
 DLLExport void init();

C#

 [DllImport("func.dll")]
 public static extern int func(int a, int b);
 [DllImport("func.dll")]
 public static extern void init();

调用时总是发生错误,只有init调用时不会出错,在搜索了很久之后我在C函数上加了一个 __stdcall 描述符,即堆栈调用顺序的改变,

PS:非托管dll使用的是stdcall,详见官方文档

就可以正常调用了

转载于:https://www.cnblogs.com/night-ride-depart/p/4748266.html

vs2013 c# 中调用 c 编写的dll出错的可能错误相关推荐

  1. VisionPro——在脚本中调用自己封装的DLL

    VisionPro--在脚本中调用自己封装的DLL 前言 一.具体配置与代码 前言 做硬件测试时,用到了vp的c#脚本,由于偷懒导出数据表想直接用以前封装好的函数库,在测试时遇到些问题,在此做些记录. ...

  2. 在ASP 调用 VB.net 编写的dll 出错 提示:Microsoft VBScript 运行时错误 错误 '800a01ad' ActiveX 部件不能创建对象

    WIN2008 SERVER或者WIN2012 SERVER,ASP 调用 VB.net 编写的dll 出错 提示: Microsoft VBScript 运行时错误 错误 '800a01ad' Ac ...

  3. vs2008中调用matlab生成的dll

    vs2008中调用matlab生成的dll matlab版本为:matlab7.11.0(R2010b) vs2008 1.在matlab中生成dll 在m文件中实现如下功能: 获得N个魔方矩阵的秩. ...

  4. python调用c#注意事项_Python调用C#编写的DLL

    起因是工作中需要用的开发编写的DLL,但是它是使用C#编写的,本人不想使用C#去写测试代码,所以需要使用Python来掉这个DLL内的方法 就用这个就很好,不要问为啥不用微软的Ironpython和别 ...

  5. java Jacob调用VB编写的DLL(COM组件)

    项目上有调用Visual Basic 6.0编写的DLL文件的需求,在使用JNA调用无果后,在网上找了部分资料,整理如下. 为什么用JNA无法调用? VB生成的COM组件,虽然是dll后缀,但事实上, ...

  6. 如何在Delphi 中调用C#生成的DLL类库

    最近需要写一个和给上位机和下位机通讯的接口,而上位机是用Delphi开发的,所以就需要用C#做一类库给Delphi调用 大概步骤: 1.首先在VS2008中新建一个类项目名为TestDelphi,然后 ...

  7. [转载] 扩展Python之在Python中调用C编写的函数模块

    参考链接: 如何在Python中调用C函数 目录 编写Python扩展1. 创建应用代码2. 根据样板编写封装代码2.1 包含Python头文件2.2 为每一个模块函数添加形如PyObject* *M ...

  8. VS2013 C#中调用DLL

    winform界面中,使用C#编程调用DLL过程记录: (1)什么是DLL 动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL 是一个包含可由多个程序同时使用的代码 ...

  9. pb调用c语言dll,PB调用C#编写的Dll类库

    在c# 中编写com组件,供PB调用实例 前言:c#中写的dll直接是不能被pb调用的,只有写成com组件才可以调用,所以用c#写dll时要注意. c#中新建类库 类库类型为通用类库,项目名为AddC ...

最新文章

  1. .net与数据库知识点
  2. RocketMQ(六):namesrv再探
  3. 10.6 捕获处理异常
  4. 孟岩谈Erlang:并行计算和云计算
  5. 《中国人工智能学会通讯》——10.25 跨姿态和光照变化的低分辨率人脸识别
  6. OpenGL坐标系及基本变换
  7. 从DCF到DCX:构想照进现实
  8. [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  9. C语言中浮点数在内存中的存储方式
  10. 物联网需要php和嵌入式吗,物联网与嵌入式两者是什么关系
  11. 在线教育项目(六)之讲师功能实现
  12. 数学与计算机的微妙关系
  13. Excle常用快捷键
  14. 每日获取强智教务系统课表,并发送短信到学生手机!爬虫真牛逼!
  15. Learning AV Foundation(三)AVAudioRecorder
  16. Ios热更新,实时代码更新,动态更新,动态库framework
  17. Spring Boot系列之Thymeleaf模板布局
  18. JNI和NKD入门系列二,mac环境下配置NDk,并在android studio上进行JNI开发
  19. Kaggle八门神器(一):竞赛神器之XGBoost介绍
  20. Spark启动错误Exception in thread “main” java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$

热门文章

  1. Ubuntu 16.04安装idea
  2. 整理的一些比较基础的面试知识点
  3. 数据结构——各排序算法的比较
  4. ThreadLocal http://blog.jobbole.com/20400/
  5. 函数_方法_的四种调用方式
  6. tar 压缩与解压缩打包命令
  7. 五大板块(5)——字符串
  8. linux驱动调试--oops信息
  9. python 列表自定义排序_自定义排序的Python列表
  10. ruijie交换机lacp动态_Server2016和华为s5720交换机链路聚合增加带宽