在metatrader4中创建一个基本DLL
creating a basic dll in metatrader4
我正在尝试使用代码块和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;
}
in gimmeDLL.def I have
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
将其编译为SCRIPT,以避免对ea的依赖
对于快速测试,SCRIPT是比EA更好的MQL4"包装器",因为在EA包装的helloworld中,您依赖于
A) 正在登录到MT4/服务器(在现有的+活跃的经纪人帐户)
+
B) 正在运行在MON/FRI MarketHours
+
C) 耐心等待,直到下一个外汇市场事件发送至少一个StreamQuote事件,
为了使你的<<em>localhost> MT4/Terminal
处理你的单行代码…
,"如何"?
#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(),
"]]]"
);
}
你需要像这样声明你将要使用的函数列表:
> #import "file_name"
> func1 define;
> func2 define;
> ...
> funcN define;
> #import
看看这个:http://docs.mql4.com/basis/preprosessor/import
相关文章:
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- 从 .lib 文件创建一个.dll文件
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- Java加载DLL,该DLL从JNI中的另一个DLL导出方法
- 如何在另一个 DLL 上使用 '/DELAYLOAD' 的 DLL
- 在一个 DLL 中嵌入所有必需的 DLL
- 用C++为java构建一个dll,它正在调用另一个dll(Eclipse上的JNI)
- 是否有从另一个DLL中加载DLL的最佳实践
- 如果你链接到一个DLL,如果该DLL丢失,是否可以启动你的可执行文件
- 第一次尝试创建一个包含许多类的DLL,捆绑在一个DLL中
- 如何正确删除从另一个DLL接收的派生对象
- 在 jmpq 上崩溃到另一个 dll 中的函数与 mingw64
- 将一个 dll 导入另一个 dll C++
- Visual Studio,C++,在另一个DLL导出的类中使用DLL导出的类
- 从另一个 dll 链接动态 dll 会导致错误
- 将一个C++ DLL 加载到 matlab 中,该 matlab 调用另一个 DLL 中的函数
- 用C++中的另一个Dll调用Dll
- LNK2019错误一个DLL链接到MFC DLL
- 导出另一个dll的静态成员