dll函数原型:
type dblarray=array[1..4] of double;ParaType=array of double; angarray=array[1..2] of double;
ParaType2=array[1..7] of double;ParaType3=array[1..6] of double; function Calfugai(BSPara:ParaType2;ScenePara:ParaType3;ValueH:ParaType;
Horizang:ParaType;ValueV:ParaType;Vertang:ParaType):dblarray;StdCall;
(代码略)Dephi中可以使用成功
声明:
type dblarray=array[1..4] of double;ParaType4=array[1..74] of double;
ParaType2=array[1..7] of double;
ParaType3=array[1..6] of double;ParaType=array of double;
function Calfugai(BSPara:ParaType2;ScenePara:ParaType3;AtnHorPara:ParaType;
AtnHorSamp:ParaType;AtnVertPara:ParaType;AtnVertSamp:ParaType):dblarray;StdCall;
external 'simout.dll';
调用:
funcren:=Calfugai(BSPara,ScenePara,AtnHorPara,AtnHorSamp,AtnVertPara,AtnVertSamp);
Edit1.Text:=FloatToStr(funcren[1]);
Edit3.Text:=FloatToStr(funcren[2]);
Edit4.Text:=FloatToStr(funcren[3]);
CoverArea:=PI*funcren[3]*funcren[3];我在C#中使用老是出错
无法封送处理“return value”: 无效的托管/非托管类型组合。 [DllImport("simout.dll", EntryPoint = "Calfugai", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling =
true, CallingConvention = CallingConvention.StdCall)]
public static extern double[] Calfugai(double[] BSPara, double[] ScreenPara,
double[] AtnHorPara, double[] AtnHorSamp, double[] AtnVertPara, double[] AtnVertSamp);
//测试数据,6个参数
double[] BSPara ={100.01,40.22,41,30,45,8,100 };(略)
double[] reuslt = simoutdll.Calfugai(BSPara, ScreenPara, AtnHorPara, AtnHorSamp,
AtnVertPara, AtnVertSamp);
解决方案 »
- c#想筛选SQL两种不同条件数据比较
- 分享几本电子书【ajax+seo+设计模式+jQuery+人月神话】
- 读取图片二进制文件出错!
- 当前页面怎么调用其它aspx页面
- 求助如何遍历窗体中的checkbox控件
- 高分求问:Request.Querystring为什么中文值传下来变成了问号 ?
- dataGridView 删除多条记录?
- 怎样知道用户选择/点击了DataGrid中的哪个单元格?
- 那们大侠能向我介绍一下C#。
- 今天搜索了各大人才网站,发现很少招聘C#程序员,是不是意味着.....
- sql关联表的问题
- 谁知道哪本书比较适合C#初学者学习 winform 编程啊 我想具体学习各种windows控件的用法 谁能给点教材
你试试把double换成float试试。