MFC winsock1 и 2 - PullRequest
       24

MFC winsock1 и 2

0 голосов
/ 15 сентября 2010

У меня большие проблемы с моим проектом.

Мне нужно связать два радара с моей программой, но у первого есть своя собственная библиотека, которая использует winsock, а во втором я хочу использовать winsock2.

Как я могу это сделать?

В настоящее время я получаю много ошибок переопределения от включений в winsock.h и winsock2.h.

Примите во внимание, что первая радарная библиотека уже является DLL, у меня есть только заголовочный файл и файл lib (без источника).

Заранее спасибо за любой ответ.

1 Ответ

0 голосов
/ 15 сентября 2010

Вы можете обойти проблему компиляции, структурировав свой код (и предварительно скомпилированные заголовки) так, чтобы ни один файл не содержал как winsock.h, так и winsock2.h, это может означать, что вы вообще не используете предварительно скомпилированные заголовки или используете их всложнее, чем обычно в проектах MFC ...

Вы можете обернуть каждую DLL в объект COM и получить к ним доступ через COM из вашей основной программы.Преимущество заключается в том, что вы полностью отделяете использование двух DLL от вашей основной компиляции.

Вы можете обернуть каждую из DLL в новую DLL (по одной), которая предоставляет интерфейс для вашей программы, которому не нужны заголовки winsock в заголовках интерфейса.

Конечно, это можетпросто проблема с включенным порядком включения в Windows.h, попробуйте поместить это в верхнюю часть предварительно скомпилированного заголовка ...

#ifndef _WINDOWS_
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
#endif

#include <winsock2.h>
...