• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#调用C++---参数传递

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

C++中函数定义:

extern "C" __declspec(dllexport) void CharArray(char* cArray)
{
    printf("%s", cArray);
}

extern "C" __declspec(dllexport) void IntRef(int & iRef)
{
    iRef = 999;
}

extern "C" __declspec(dllexport) void FloatArray(float* fArray,int size)
{
    for (int i=0;i<size;++i)
    {
        fArray[i] = 6.6f;
    }
}

C#中调用:

    class Program
    {
      
        [DllImport("foo.dll",EntryPoint = "CharArray", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
        public static extern void CharArray([MarshalAs(UnmanagedType.LPStr)]string cArray);

        [DllImport("foo.dll", EntryPoint = "IntRef", CallingConvention = CallingConvention.Cdecl)]
        public static extern void IntRef(ref int iRef);

        [DllImport("foo.dll", EntryPoint = "FloatArray", CallingConvention = CallingConvention.Cdecl)]
        public static extern void FloatArray(float[] fArray, int size);

        static void Main()
        {
            int counter = 0;
            float[] farr =new float[6];
            string path = "c:\\foo\\bar";
            CharArray(path);
            FloatArray(farr, 6);
            IntRef(ref counter);
            Console.WriteLine(counter);
            for (int i = 0; i < 6; i++)
            {
                Console.WriteLine(farr[i]);
            }
        }
    }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Windows.DevicesAPIinaC#WinFormWin32DesktopapplicationinWindows10发布时间:2022-07-14
下一篇:
c#空接合(??)运算符的运用发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap