gpt4 book ai didi

c++ - 在 metatrader4 中创建一个基本的 dll

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:02 37 4
gpt4 key购买 nike

我正在尝试使用 codeblocks 和 metatrader4 创建一个基本的 hello world dll,并尝试在条纹版本中进行。我的编译 .dll 和 .def 与 .mq4 文件位于同一目录中。

在文件 test.mq4 中

#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
#property strict

//#import "gimmeDLL.dll"
// string GetStringValue(string) define;
//#import

#import "gimmeDLL.dll"
string GetStringValue(string) define;
#import

void OnStart()
{
GetStringValue();

}

在dll的main.cpp中

#define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;

#define MT4_EXPFUNC __declspec(dllexport)

void MT4_EXPFUNC GetStringValue()
{
cout << "Hello, World" << endl;
}

在 gimmeDLL.def 中我有

LIBRARY gimmeDLL

EXPORTS
GetStringValue

错误

'define' - semicolon expected   marketDump.mq4  6   34
'define' - declaration without type marketDump.mq4 6 34
'GetStringValue' - wrong parameters count marketDump.mq4 11 4

最佳答案

将其编译为脚本,以避免 EA 依赖

对于快速测试,SCRIPT 是比 EA 更好的 MQL4“包装器”,因为在 EA 包装的 HelloWorld 中,您依赖

A) 正在登录到一个 MT4/服务器上(在一个现有的 + 真实经纪商账户中)

+

B) 在周一/周五 MarketHours 期间运行

+

C) 保持耐心等待,直到下一个外汇市场事件发送至少一个 StreamQuote 事件,

所以至于让您的 <localhost> MT4/Terminal 处理您的单行代码 ...

那么,“HOW-TO”呢?

#import "gimmeDLL.dll"                       // MQL4-import-section-start-marker--------
string GetStringValue(); // interface definition for compile-time processing
#import // MQL4-import-section-end-marker----------
void OnInit() { // MQL4-on-init(), for pre-Build-578 Terminal, use rather int init(){ ...; return(0); } <code-constructor>
Comment( "DLL-call test", // MQL4-UI-printing facility
"\nhas produced a string == [[[",
GetStringValue(),
"]]]"
);
}

关于c++ - 在 metatrader4 中创建一个基本的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24953712/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com