FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3128|回复: 0
打印 上一主题 下一主题

C#调用c的dll,求大神指导

[复制链接]
跳转到指定楼层
楼主
发表于 2016-11-25 23:31:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:但总是提示:方法类型签名与PIvoke不兼容
这里 返回值mydb是一个结构体,输入参数为数组指针:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;//引入dll文件的函数

namespace dll文件链接
{
    class Program
    {
      
        [DllImport("EMatrix.dll", EntryPoint = "EnergySolver", CallingConvention = CallingConvention.Cdecl)]
        private static extern mydb EnergySolver(IntPtr  ZUCHNEG);//引入dll中写好的函数
       [StructLayout(LayoutKind.Sequential, Pack = 1)]
        public struct mydb
{
           [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
              public double[] x;//Y坐标的值,单位U(mm/s),该数组从1开始计数
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
                public double [] y;//X坐标的值,单位P(MPa),该数组从1开始计数
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20*4)]
            public double[]a;//X坐标的值,单位P(MPa),该数组从1开始计数
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
            public double[] b;//X坐标的值,单位P(MPa),该数组从1开始计数
}
        static void Main(string[] args)
        {
            double[] m_PeiFang1 = new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            m_PeiFang1[0] = 13.731882598335664;
            m_PeiFang1[1] = 89.175685804764413;
            m_PeiFang1[2] = 13.731882598335664;
            m_PeiFang1[3] = 2.2614300711402282;
            m_PeiFang1[4] = -3438.4000000000001;
            m_PeiFang1[5] = 450.00000000000000;
            IntPtr ptr = Marshal.AllocHGlobal(m_PeiFang1.Length * Marshal.SizeOf(typeof(double)));//分配内存
            mydb a = EnergySolver( ptr);
            Console.ReadKey();
        }
    }
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-9-29 06:12 , Processed in 0.043215 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表