gpt4 book ai didi

c++ - 如何创建一个 DLL,它接受来自 MT4 的字符串并返回字符串类型?

转载 作者:行者123 更新时间:2023-11-30 02:28:08 27 4
gpt4 key购买 nike

我花了两周的时间来创建一个 DLL,我可以向其传递字符串并取回字符串。但仍然没有成功。

我在 Dev-C++(TDM-GCC 4.9.2) 和 visual studio community 2015 上试过这个。我对此进行了很多搜索,并尝试了几乎所有找到的示例代码,但我没有成功。

我必须将此 DLL 与 MetaTrader Terminal 4 一起使用。
这是我使用的一个示例代码。此代码编译成功,但当我向此发送一个 string 时,从 MT4,我收到访问冲突错误。

#ifndef MYLIB_HPP
#define MYLIB_HPP

#include <string>

#ifdef MYLIB_EXPORTS
#define MYLIB_API __declspec(dllimport)
#else
#define MYLIB_API __declspec(dllexport)
#endif
bool MYLIB_API test(const std::string& str);
#endif

bool MYLIB_API MyTest(const std::string& str)
{
return (str == "Hi There");
}

最佳答案

如果您确实在 DLL 和另一个可执行文件之间共享 C++ string,则两者都需要使用相同的工具链进行编译。这是因为 std::string 仅在 header 中定义。因此,如果 DLL 和可执行文件使用不同的 string header ,它们很可能是二进制不兼容的。

如果您想确保不同的工具链都能正常工作,请坚持使用以 NULL 结尾的 C 字符串。

关于c++ - 如何创建一个 DLL,它接受来自 MT4 的字符串并返回字符串类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41074470/

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