设为首页收藏本站

宽客俱乐部——量化投资与对冲基金交流平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
揭开股票高频交易的神秘面纱——股票日内回转T+0交易课程
神奇的期货冲量交易法培训(包学会)
查看: 2616|回复: 9

如何在红璟里调用C函数

[复制链接]
发表于 2014-12-31 17:29:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
using System;
using DevelopLibrary.Enums;
using DevelopLibrary.DevelopAPI;
using System.Collections.Generic;
using System.Runtime.InteropServices;
namespace DemoStrategy.功能测试
{

    public class 调用C函数 : EventStrategyBase
    {
        [DllImport("PlusLib.dll", EntryPoint = "test")]
        public static extern void test(int N, double[] n, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] double[] Z);


        public static DataArray SUM_Plus(DataArray f)
        {
            double[] Z = new double[f.Length];

            test(f.Length, f.Data, Z);

            return new DataArray(Z);
        }

        public override void OnTick(TickData td)//c++在for循环有明显的优势。
        {
            HiPerfTimer.Start();
            Print(SUM(VOL).LAST + "\t");
            HiPerfTimer.Stop();
            PrintLine("传统算法耗时:" + HiPerfTimer.Duration.ToString());

            HiPerfTimer.Start();
            Print(SUM_Plus(VOL).LAST + "\t");
            HiPerfTimer.Stop();
            PrintLine("C++算法耗时:" + HiPerfTimer.Duration.ToString());

            PrintLine("");
        }
    }
}

----------------------------C++代码
// PlusLib.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include <float.h>

using namespace std;


extern "C" _declspec(dllexport)int Sum(int a, int b)
{
    return a+b;
}

extern "C" __declspec(dllexport) void test(const int M, const double n[], double *N)
{
    double num2 = 0;
    for (int i = 0; i < M ;i++)
    {
        if (i == 0)
            N[0] = n[0];
        else
        {
            double fd = _isnan(n[i]) ? 0 : n[i];
            N[i] = N[i - 1] + fd;
        }
    }
}

PlusLib.rar

1.15 MB, 下载次数: 0

回复

使用道具 举报

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

本版积分规则

手机版|量化投资|对冲套利|高频|互联网接口|资产管理|宽客俱乐部 ( 沪ICP备16036585号   点击交谈

关注

GMT+8, 2019-5-27 19:27 , Processed in 0.176177 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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