сокеты — C ++: ошибка LNK2019 при сборке DLL из стандартных библиотек

Я пытаюсь создать библиотеку DLL, чтобы позволить моему MT4 (известной платформе электронной торговли FX) также обмениваться данными с моим сервером через сокеты (см. Код ниже, он работает в консольной программе) с использованием Visual Studio 2017 и обнаружил LNK2019. ошибка.

Из того, что я понимаю из различных сообщений в блогах / форумах, это связано с зависимостями / экспортом динамической библиотеки из статической библиотеки и т. Д., Но я не знаю, как это исправить.

MT4.h

#pragma once
#ifdef MT4_EXPORTS
#define MT4_API __declspec(dllexport)
#else
#define MT4_API __declspec(dllimport)
#endif

namespace MT4
{
class Functions
{
public:
static MT4_API void main();
};
}

MT4.cpp

#pragma comment(lib, "Ws2_32.lib")

#include "stdafx.h"#include <WinSock2.h>
#include <WS2tcpip.h>
#include "MT4.h"
namespace MT4
{
void Functions::main()
{
char ipstr[] = "192.168.1.160";

int r;
WSAData wsaData;
WORD DLLVersion;
DLLVersion = MAKEWORD(2, 1);
r = WSAStartup(DLLVersion, &wsaData);

SOCKADDR_IN addr;
int addlen = sizeof(addr);
SOCKET sConnect;

sConnect = socket(AF_INET, SOCK_STREAM, NULL);

in_addr tmp = { 0 };
InetPtonA(AF_INET, ipstr, &tmp);
addr.sin_addr = tmp;
addr.sin_family = AF_INET;
addr.sin_port = htons(9898);

connect(sConnect, (SOCKADDR*)&addr, sizeof(addr));

closesocket(sConnect);
}
}

Сообщения об ошибках:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK1120 6 unresolved externals  MT4 C:\Users\FutureC\source\repos\MT4\Debug\MT4.dll 1
Error   LNK2019 unresolved external symbol __imp__closesocket@4 referenced in function "public: static void __cdecl MT4::Functions::main(void)" (?main@Functions@MT4@@SAXXZ)    MT4 C:\Users\FutureC\source\repos\MT4\MT4\MT4.obj   1
Error   LNK2019 unresolved external symbol __imp__connect@12 referenced in function "public: static void __cdecl MT4::Functions::main(void)" (?main@Functions@MT4@@SAXXZ)   MT4 C:\Users\FutureC\source\repos\MT4\MT4\MT4.obj   1
Error   LNK2019 unresolved external symbol __imp__htons@4 referenced in function "public: static void __cdecl MT4::Functions::main(void)" (?main@Functions@MT4@@SAXXZ)  MT4 C:\Users\FutureC\source\repos\MT4\MT4\MT4.obj   1
Error   LNK2019 unresolved external symbol __imp__socket@12 referenced in function "public: static void __cdecl MT4::Functions::main(void)" (?main@Functions@MT4@@SAXXZ)    MT4 C:\Users\FutureC\source\repos\MT4\MT4\MT4.obj   1
Error   LNK2019 unresolved external symbol __imp__WSAStartup@8 referenced in function "public: static void __cdecl MT4::Functions::main(void)" (?main@Functions@MT4@@SAXXZ) MT4 C:\Users\FutureC\source\repos\MT4\MT4\MT4.obj   1
Error   LNK2019 unresolved external symbol __imp__inet_pton@12 referenced in function "public: static void __cdecl MT4::Functions::main(void)" (?main@Functions@MT4@@SAXXZ) MT4 C:\Users\FutureC\source\repos\MT4\MT4\MT4.obj   1

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]