以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- stockfunc.dll 的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=8685) |
-- 作者:sbant -- 发布时间:2011/10/31 17:01:37 -- stockfunc.dll 的问题 管理员能否看看 一下代码有什么问题吗
---------------------------------------------------------------------------- int mRSX(double Buffer[],int Lengh,double JRSX_Bufer[]) return 0;
const float* pValue1 = pData->m_pCalcParam[0].m_pfParam; double *input=new double[count]; for (int i=0;i<count;i++) int cond=mRSX(input,Length,output); if (cond==0) delete []input; |
-- 作者:26327756l -- 发布时间:2011/10/31 17:19:08 -- 等待高手回答 |
-- 作者:admin -- 发布时间:2011/10/31 17:22:57 -- 先说明你遇到了什么问题?: |
-- 作者:sbant -- 发布时间:2011/11/1 1:39:08 -- 数据大部分时间不能显示 修改参数后有时能显示默认参数的结果 但是其他参数的结果无效
而且按键盘下键增加和减少数据时 计算出得结果会变化或者错误 |
-- 作者:admin -- 发布时间:2011/11/1 9:19:17 -- 那请将完整的公式测试代码,以及DLL中的C++代码提供一下,我们本地做一下测试 |
-- 作者:sbant -- 发布时间:2011/11/1 13:43:41 -- 请给个qq |
-- 作者:王锋 -- 发布时间:2011/11/1 14:46:33 -- 抱歉此类客服我们不对客户进行QQ指导,请提供能表现故障的示例代码即可 |
-- 作者:sbant -- 发布时间:2011/11/2 9:23:34 -- stockfunc.h 部分 __declspec(dllexport) int WINAPI MJRSX(CALCINFO* pData);
------------------------------------------------------------------------
stockfunc.cpp 部分
int mRSX(double Buffer[],int Lengh,double JRSX_Bufer[]) double v4,v8,v10,v14,v18,v20,v0C,v1C,v8A; if (Lengh-1>=5)w=Lengh-1;else w=5; Kg=3/(Lengh+2.0); Hg=1.0-Kg; for (shift=0;shift<sizeof(Buffer);shift++) v8 = Buffer[shift]-Buffer[shift-1]; v8A=abs(v8); f28 = Hg * f28 + Kg * v8; f58 = Hg * f58 + Kg * v8A; if ((r <= w) && (v8!= 0)) k = 1; } return 0;
const float* pValue1 = pData->m_pCalcParam[0].m_pfParam; double *input=new double[count]; for (int i=0;i<count;i++) int cond=mRSX(input,Length,output); if (cond==0) delete []input; |
-- 作者:admin -- 发布时间:2011/11/2 9:44:48 -- 初步看了你的DLL代码,由于原理复杂很难理解其中的内容,但是初步分析来看应该与你的内部使用的数据行情有关,建议多在DLL内加日志输出,逐步排除到底是哪个位置原因,附上我们经常使用的调试输出日志的C++代码类:
#if !defined(AFX_LOGINFO_H__9EABF931_9C07_4EC9_9FF4_CA90E9F59C5D__INCLUDED_) #if _MSC_VER > 1000 #include <stdio.h> // 文件相关操作的头文件 //! UNICODE格式文件头的常量定义 /** // 临时信息 // 当前本机时间的结构实例 // 日志文件指针 try // 按照传入的格式,格式化日志信息 : va_start( ap, szFormat ); // 在日志信息前添加当前时间信息,并在信息尾添加换行信息 : // 打开日志信息文件 if ( pFile ) #ifdef _UNICODE // 文件大小 // 获取文件大小 // 若当前为UNICODE模式,且当前为新文件,则写入UNICODE格式文件头 : #endif // 向文件写入日志信息数据 // 关闭文件 : static void LogInfo2( const TCHAR szLogFileName[], const TCHAR szFormat[], ... ) // 临时信息 // 当前本机时间的结构实例 // 日志文件指针 try // 按照传入的格式,格式化日志信息 : va_start( ap, szFormat ); // 在日志信息前添加当前时间信息,并在信息尾添加换行信息 : // 打开日志信息文件 if ( pFile ) #ifdef _UNICODE // 文件大小 // 获取文件大小 // 若当前为UNICODE模式,且当前为新文件,则写入UNICODE格式文件头 : #endif // 向文件写入日志信息数据 // 关闭文件 : #define LOG_DEBUG_INFO CLogInfo::LogInfo #endif // !defined(AFX_LOGINFO_H__9EABF931_9C07_4EC9_9FF4_CA90E9F59C5D__INCLUDED_) |
-- 作者:sbant -- 发布时间:2011/11/2 10:47:52 -- 似乎也很复杂啊
谢谢~ |