📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    MT4 DLL 调用问题

    2011-12-08 · 6177 阅读
    Dear all:
      
               初次发贴,多多关照! 各位高手 帮我解答个问题 我利用Mt4 例子程序生成DLL  想实现文件的copy
      创建了下面一个函数 mt4 在调用的时候 平台死掉 是啥原因呢
      //=======================================================
      MT4_EXPFUNC bool __stdcall Mt4CopyFile(char *s,char *d)
      {
         FILE *fp1,*fp2;
         if((fp1=fopen(s,\"r\"))==NULL)
         {
                  printf(\"Cannot open Source file!n\");
                      exit(0);
         }
         if((fp2=fopen(d,\"w\"))==NULL)
         {
                 printf(\"Cannot open Destination file!n\");
                 exit(0);
      
         }
         while(!feof(fp1))
                 fputc(fgetc(fp1),fp2);
         fclose(fp1);
         fclose(fp2);
         return 0;
      }
      //=============================
      下面是源码
      
      
      //+------------------------------------------------------------------+
      //|                                              Sample DLL for MQL4 |
      //|                 Copyright ?2004-2006, MetaQuotes Software Corp. |
      //|                                        http://www.metaquotes.net |
      //+------------------------------------------------------------------+
      #define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
      #include
      #include
      #include
      //----
      #define MT4_EXPFUNC __declspec(dllexport)
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
      #pragma pack(push,1)
      struct RateInfo
        {
         unsigned int      ctm;
         double            open;
         double            low;
         double            high;
         double            close;
         double            vol;
        };
      #pragma pack(pop)
      //----
      struct MqlStr
        {
         int               len;
         char             *string;
        };
      static int CompareMqlStr(const void *left,const void *right);
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
      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);
        }
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
      MT4_EXPFUNC int __stdcall GetIntValue(const int ipar)
        {
         printf(\"GetIntValue takes %dn\",ipar);
         return(ipar);
        }
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
      MT4_EXPFUNC double __stdcall GetDoubleValue(const double dpar)
        {
         printf(\"GetDoubleValue takes %.8lfn\",dpar);
         return(dpar);
        }
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
      MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
        {
         printf(\"GetDoubleValue takes \"%s\"n\",spar);
         return(spar);
        }
      //+------------------------------------------------------------------+
      //|                                                                  |
      //+------------------------------------------------------------------+
      MT4_EXPFUNC double __stdcall GetArrayItemValue(const double *arr,const int arraysize,const int nitem)
        {
      //----
         if(arr==NULL)
           {
            printf(\"GetArrayItemValue: NULL arrayn\");
            return(0.0);
           }
         if(arraysize
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 12 个

    ipwzlbw772 LV4

    发表于 2012-11-22 02:15:12 | 显示全部楼层

    嘿嘿  

    傻蛋的青春 LV5

    发表于 2012-11-22 02:15:12 | 显示全部楼层

    厉害!强~~~~没的说了!  

    我喜欢 LV5

    发表于 2012-11-22 02:15:12 | 显示全部楼层

    围观来了哦  

    野狗 LV5

    发表于 2012-11-22 02:15:12 | 显示全部楼层

    貌似我真的很笨????哎  

    笑脸 LV5

    发表于 2012-11-22 02:15:12 | 显示全部楼层

    今天再看下  

    laoshiren LV5

    发表于 2012-11-22 02:15:12 | 显示全部楼层

    先看看怎么样!  

    风伤依旧 LV5

    发表于 2012-11-22 02:15:12 | 显示全部楼层

    我有个群,大家一起来讨论EA.  

    zjsxfgh LV3

    发表于 2014-11-1 20:20:35 | 显示全部楼层

    看看是什么东西啊

    hcteleixi LV3

    发表于 2014-11-3 03:34:29 | 显示全部楼层


    继续,学习了
    12下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服