欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]c++接口中的静态变量.

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3893人关注过本帖树形打印复制链接

主题:[求助]c++接口中的静态变量.

帅哥哟,离线,有人找我吗?
oceanjztwind
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:78 积分:381 威望:0 精华:0 注册:2011/7/27 20:48:19
[求助]c++接口中的静态变量.  发帖心情 Post By:2012/9/3 19:24:30 [只看该作者]

每一个tick数据接收都会刷新一遍 想要一个变量只在DLL公式加载时才初始化一次,也不随K线增加而重新初始化
想测试参数bool test_param=true  以下写法应该怎样改进
// StockFunc.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "StockFunc.h"
#include "stdio.h"
#include "vector"
#include <fstream>
#include<iostream>
#include<string>
#include <time.h>
using namespace std;
///////////////////////////////////////
static bool test_param = true;
///////////////////////////////////////
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;
}

//DLL公式的运行模式,系统系统调用该DLL时,告知公式系统该DLL公式运行在何种模式下
//返回值:  0本DLL运行序列模式 1本DLL运行逐周期模式
__declspec(dllexport) int WINAPI RUNMODE()
{
//本DLL运行序列模式,如果运行逐K线模式将此函数返回1,此时每执行一个K线都是调用本接口一次。
// return 1;
return 0;
}
void testparam(int i,int last_kx)
{  
  if(i== last_kx && test_param == true )
  {   
 time_t rawtime;time ( &rawtime );
 ofstream kd;
      kd.open("test_param.txt",ios::app);
      kd <<"test_param111:"<<test_param<<" "<<ctime(&rawtime);
      kd.close();
 int f=2;
 if(f)
 {
test_param = false;  
 }
      ofstream kd1;
      kd1.open("test_param.txt",ios::app);
      kd1 <<"test_param222:"<<test_param<<" "<<ctime(&rawtime);
      kd1.close();
  }
}
__declspec(dllexport) int WINAPI TESTTEST(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开始有效
{
   testparam(i,pData->m_nNumData-1);
pData->m_pResultBuf[i] = i; //平均
}
return nPeriod-1;
}
}

return -1;
}//函数结束
以下为输出的结果
test_param111:1 Mon Sep 03 19:10:33 2012
test_param222:0 Mon Sep 03 19:10:33 2012
test_param111:1 Mon Sep 03 19:10:37 2012
test_param222:0 Mon Sep 03 19:10:37 2012
test_param111:1 Mon Sep 03 19:11:01 2012
test_param222:0 Mon Sep 03 19:11:01 2012
test_param111:1 Mon Sep 03 19:11:44 2012
test_param222:0 Mon Sep 03 19:11:44 2012
test_param111:1 Mon Sep 03 19:12:15 2012
test_param222:0 Mon Sep 03 19:12:15 2012
test_param111:1 Mon Sep 03 19:13:27 2012
test_param222:0 Mon Sep 03 19:13:27 2012
test_param111:1 Mon Sep 03 19:13:36 2012
test_param222:0 Mon Sep 03 19:13:36 2012
test_param111:1 Mon Sep 03 19:13:48 2012
test_param222:0 Mon Sep 03 19:13:48 2012
test_param111:1 Mon Sep 03 19:13:56 2012
test_param222:0 Mon Sep 03 19:13:56 2012
test_param111:1 Mon Sep 03 19:14:48 2012
test_param222:0 Mon Sep 03 19:14:48 2012
test_param111:1 Mon Sep 03 19:15:00 2012
test_param222:0 Mon Sep 03 19:15:00 2012
test_param111:1 Mon Sep 03 19:15:27 2012
test_param222:0 Mon Sep 03 19:15:27 2012
test_param111:1 Mon Sep 03 19:15:44 2012
test_param222:0 Mon Sep 03 19:15:44 2012




 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/9/3 20:21:08 [只看该作者]

工具菜单->选项->常规  勾选"DLL公式加载驻留内存模式"


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
oceanjztwind
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:78 积分:381 威望:0 精华:0 注册:2011/7/27 20:48:19
  发帖心情 Post By:2012/9/3 21:16:19 [只看该作者]

以下是引用王锋在2012-9-3 20:21:08的发言:
工具菜单->选项->常规  勾选"DLL公式加载驻留内存模式"

谢谢 我试试看

 回到顶部
帅哥哟,离线,有人找我吗?
oceanjztwind
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:78 积分:381 威望:0 精华:0 注册:2011/7/27 20:48:19
  发帖心情 Post By:2012/9/4 18:35:35 [只看该作者]

谢谢  这个OK了....

 回到顶部