MQL4封杀C++编译的DLL 新评论 lawme 2014.04.06 22:25 用C编译成的DLL,可以在MT4中使用。如下: /* --- The following code comes from d:\lccwin32\lib\wizard\dll.tpl. */ #include <stdio.h> #include <windows.h> int __declspec(dllexport) get_num(int n) { return n*2; } //------------------------------------------------- BOOL WINAPI __declspec(dllexport) LibMain(HINSTANCE hDLLInst, DWORD fdwReason, LPVOID lpvReserved) { return TRUE; } 用C++编译成的DLL,在MT4中使用时,无法load。源码如下: #include "stdafx.h" #include <stdio.h> extern "C" __declspec(dllexport) int get_num(int a); //---------------------------------------------------- int get_num(int a) { return a*10; } //------------------------------------------------------- BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } 为什么会出现这种情况,是bug还是人为故意? 很不理解。 lawme 2014.04.07 22:22 #1 经反复实验证明,完全是人为故意的。 MT4有检查DLL内容的功能。如果有其不允许的内容,无论该DLL是C语言还是C++编译的,一律不准load。 我已经大致猜出了他们为什么要这样做。 lawme 2014.04.08 00:40 #2 又经过反复检查,发现可能是我搞错了。 MT4经过自动升级,目录有了新变化,问题出在这里。 lawme 2014.04.08 01:06 #3 确认,完全是我搞错了。 现在一切正常,我非常高兴,非常满意。 谢谢! 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
用C编译成的DLL,可以在MT4中使用。如下:
用C++编译成的DLL,在MT4中使用时,无法load。源码如下:
为什么会出现这种情况,是bug还是人为故意?
很不理解。