下载MetaTrader 5
要添加评论,请登录注册
发表 您的文章。我们会把它翻译成其他语言!
luhang
10
luhang 2012.03.03 15:43 

本人分别用mfc和qt creator 各写了一个demo.dll。

我在EA里面调用mfc写的dll,没有问题,但是调用 qt creator写的dll,怎么也不行,报错为 无法加载库 即 can not load library "demo.dll"。

我找了些资料,但是不太明白为什么,有没有哪位高人能指点下,不慎感激


如果我用 qt creator写的dll 格式不对的话,希望能提供个例子看下,多谢

以下是我用qt creator 写的代码

lib_global.h为:

#ifndef LIB_GLOBAL_H

#define LIB_GLOBAL_H
#include <QtCore/qglobal.h>
//#if defined(LIB_LIBRARY)
//#  define LIBSHARED_EXPORT Q_DECL_EXPORT
//#else
//#  define LIBSHARED_EXPORT Q_DECL_IMPORT
//#endif
# define WIN32_LEAN_AND_MEAN // 排除很少使用的东西,从 Windows 邮件头
#if defined(LIB_LIBRARY)
# define MT4_EXPFUNC __declspec(dllexport)
#else
# define MT4_EXPFUNC __declspec(dllexport)
#endif
#endif // LIB_GLOBAL_H

lib.h为
#ifndef LIB_H
#define LIB_H
#include <string>
#include "lib_global.h"
using namespace std;

extern "C" MT4_EXPFUNC int getMyInt();
extern "C" MT4_EXPFUNC string getMyString();
#endif // LIB_H

lib.c为:
#include "lib.h"
int getMyInt()
{
    int str=233;
    return str;
}

string getMyString()
{
    string str;
    str = "hello ......";
    return str;
}

BaiChun Li
838
BaiChun Li 2012.03.04 05:48  

DLL的问题我是一无所知,将来还要像楼主学习啊。

同时,想起来一件事情,这里就不占用楼主这块宝地了。

祝你好运!

luhang
10
luhang 2012.03.04 08:14  

我用MFC编译出来的dll,用c++的depend工具查看的时候,发现函数名就是 Hello

而qt creator 写的dll 函数名是_Hello@0。

那么是不是如果我用qt creator编译出来的函数是Hello,而不是_Hello@0,MT4就可以正常调用了

JunJie Wang
112
JunJie Wang 2012.05.06 13:04  
luhang84:

我用MFC编译出来的dll,用c++的depend工具查看的时候,发现函数名就是 Hello

而qt creator 写的dll 函数名是_Hello@0。

那么是不是如果我用qt creator编译出来的函数是Hello,而不是_Hello@0,MT4就可以正常调用了


http://baike.baidu.com/view/1276580.htm

看看这个有没有帮助

luhang
10
luhang 2014.07.07 07:43  

我已经找到方法了,就是用mfc写个dll。

经过2年的锻炼,我已经成功写出出色的ea,已经练就了一身写ea的技术,因为本人从事软件开发8年了。

有需要根本跟单软件,网络跟单系统的,可以联系qq 344565123 

/
要添加评论,请登录注册