易语言如何调用c dll文件,[求助]股软的DLL开发C接口规范如何用易语言做DLL|易语言俱乐部...

这里我发几个FoxFmlDevelope文件中的另几个文件名及其具体内容,(具体内容得用VC++6打开)

第一个:FoxFunc.cpp

类型:C++ Source file

大小:3715

// FoxFunc.cpp : Defines the entry point for the DLL application.

//

#include "stdafx.h"

#include "FoxFunc.h"

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD  ul_reason_for_call,

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH:

break;

}

return TRUE;

}

//计算收盘价的均价,一个常数参数,表示计算周期

//调用方法:

// "FOXFUNC@MYMACLOSE"(5)

__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)

{

if ( pData->m_pfParam1 &&    //参数1有效

pData->m_nParam1Start<0 &&   //参数1为常数

pData->m_pfParam2==NULL )   //仅有一个参数

{

float fParam = *pData->m_pfParam1;

int nPeriod = (int)fParam;   //参数1

if(nPeriod>0)

{

float fTotal;

int i, j;

for ( i = nPeriod-1; i < pData->m_nNumData; i++ )//计算nPeriod周期的均线,数据从nPeriod-1开始有效

{

fTotal = 0.0f;

for ( j = 0; j < nPeriod; j++ )    //累加

fTotal += pData->m_pData[i-j].m_fClose;

pData->m_pResultBuf= fTotal/nPeriod; //平均

}

return nPeriod-1;

}

}

return -1;

}

//计算均价,2个参数,参数1为待求均线的数据,参数2表示计算周期

//调用方法:

// "FOXFUNC@MYMAVAR"(CLOSE-OPEN,5)

__declspec(dllexport) int WINAPI MYMAVAR(CALCINFO* pData)

{

if(pData->m_pfParam1 && pData->m_pfParam2 &&  //参数1,2有效

pData->m_nParam1Start>=0 &&     //参数1为序列数

pData->m_pfParam3==NULL)     //有2个参数

{

const float*  pValue = pData->m_pfParam1; //参数1

int nFirst = pData->m_nParam1Start;   //有效值起始位

float fParam = *pData->m_pfParam2;   //参数2

int nPeriod = (int)fParam;

if( nFirst >= 0 && nPeriod > 0 )

{

float fTotal;

int i, j;

for ( i = nFirst+nPeriod-1; i < pData->m_nNumData; i++ )

{

fTotal = 0.0f;

for ( j=0; j < nPeriod; j++ )   //累加

fTotal += pValue[i-j];

pData->m_pResultBuf= fTotal/nPeriod;//平均

}

return nFirst+nPeriod-1;

}

}

return -1;

}

//计算多个序列的均值,5个参数,参数1-4为待求多个序列,参数5用于举例说明数值参数的用法,实际在此例中无需该参数

/*

调用方法:

MA1:=MA(CLOSE,3);

MA2:=MA(CLOSE,6);

MA3:=MA(CLOSE,12);

MA4:=MA(CLOSE,24);

MYBBI: "FOXFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);

*/

__declspec(dllexport) int WINAPI MYBBI(CALCINFO* pData)

{

if ( pData->m_pCalcParam[0].m_nParamStart >= 0 &&

pData->m_pCalcParam[1].m_nParamStart >= 0 &&

pData->m_pCalcParam[2].m_nParamStart >= 0 &&

pData->m_pCalcParam[3].m_nParamStart >= 0 )   //4个序列都含有效数值

{

//计算返回的序列的第一个有效值位置

int nFirst = pData->m_pCalcParam[3].m_nParamStart;  //已知返回的序列的第一个有效值位置与第4个序列一致

//若不知,则

/*

int nFirst = pData->m_pCalcParam[0].m_nParamStart;

if ( nFirst < pData->m_pCalcParam[1].m_nParamStart )

nFirst = pData->m_pCalcParam[1].m_nParamStart;

if ( nFirst < pData->m_pCalcParam[2].m_nParamStart )

nFirst = pData->m_pCalcParam[2].m_nParamStart;

if ( nFirst < pData->m_pCalcParam[3].m_nParamStart )

nFirst = pData->m_pCalcParam[3].m_nParamStart;

*/

const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;

const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;

const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;

const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;

int nNum = (int)(pData->m_pCalcParam[4].m_fParam);  //实际上该例中已知nNum=4,在此用于说明数值参数的用法

for( int i = nFirst; i < pData->m_nNumData; i++ )

{

pData->m_pResultBuf=

(pValue1+ pValue2+ pValue3+ pValue4)/nNum;

}

return nFirst;

}

return -1;

}

第二个:FoxFunc.h

类型:C Header file

大小:7234

见页首

第三个:StdAfx.cpp

类型:C++ Source file

大小:294

// stdafx.cpp : source file that includes just the standard includes

// FxjFunc.pch will be the pre-compiled header

// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

// TODO: reference any additional headers you need in STDAFX.H

// and not in this file

第四个:stdafx.h

类型:C Header file

大小:821

// stdafx.h : include file for standard system include files,

//  or project specific include files that are used frequently, but

//      are changed infrequently

//

#if !defined(AFX_STDAFX_H__401C6083_B7B9_11D2_B681_D0BCED681808__INCLUDED_)

#define AFX_STDAFX_H__401C6083_B7B9_11D2_B681_D0BCED681808__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000// Insert your headers here

#define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers

#include

#include

// TODO: reference additional headers your program requires here

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__401C6083_B7B9_11D2_B681_D0BCED681808__INCLUDED_)

第五个:FoxFunc.dsp

类型

60ea19c1f5f5b4fe59919a903cc724dd.gifroject File

大小:4470

第六个:FoxFunc.dsw

类型

60ea19c1f5f5b4fe59919a903cc724dd.gifroject Workspace

大小:537

后两个是前面四个文件的综合.内容就是前四个.(有意思的是第一个,不妨按其例,用飞狐编辑调用其DLL的公式试试),但愿对有心人有所帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值