C#怎样调用c编写的dll,dll中函数为 extern "C" void PASCAL EXPORT relation(int len,double *ch1,double *ch2,double *data);
ch1 ch2 data 都是数组
那么在c#中该写怎样一个函数?
各位高手快帮忙啊
ch1 ch2 data 都是数组
那么在c#中该写怎样一个函数?
各位高手快帮忙啊
解决方案 »
- C#如何改变comboBox的高度?
- DevExpress 如何改变xtraTabPage的显示位置
- winform窗体界面子窗体或用户自定义控件载入想实现动画效果,如淡入淡出效果
- 安装了VS2008的朋友,请帮一下忙,万分感激。
- 使用performanceCounter出现 "找不到网络路径"的提示。
- “\”被当成转义字符,如何避免
- CLR 无法从 COM 上下文 0x1a02e0 转换为 COM 上下文 0x1a0450,这种状态已持续 60 秒
- 用vs.net 2005写的C#连接oracle的程序,怎么才能运行在vs.net 2003上
- winform下,datagrid结合扫描枪定位问题
- 求助!c# 获取网页源码失败,返回错误442
- 当在文本框中输入值的同时下拉列表中自动选中一个默认的值?
- 运算符操作对象问题
using System.Runtime.InteropServices;
[DllImport("xxx.dll")]
static extern void relation(int len, double[] ch1, double[] ch2, double[] data);
using System;
using System.Runtime.InteropServices;
class MainApp
[DllImport("Kernel32")] //读取动态库文件
public static extern int GetProcAddress(int handle, String funcname); 给你讲一下我的经验:
首先 你在C#中调用的 是C++ 写的一个动态库。比如Kernel32.dll 中的 函数;
这个函数用C++写 有如下要求:
1、 必须为全局函数
2、 函数参数 必须为基本类型,也就是C++ 和C#都有的类型,否则你在public static extern int GetProcAddress(int handle, String funcname);
这里没有办法声明。 其余的 没什么了; 还有你可以参考这里:http://blog.csdn.net/jingshuaizh/archive/2009/02/04/3862019.aspx
2.[DllImport("yourdllname.dll")]
public static extern void relation(int len,ref double ch1,ref double ch2,ref double data);
或者像一楼说的那样
public static extern void relation(int len, double[] ch1, double[] ch2, double[] data);
我没有试,你试一下。
3.然后就可以用了。