2010-09-15 18 views
0

我對我的項目感到很困擾。MFC winsock1和2

我必須連接兩個雷達與我的程序,但第一個有自己的庫使用winsock,而在第二個我想使用winsock2。

我該怎麼做?

目前,我從包含在winsock.hwinsock2.h中的包含中得到許多重定義錯誤。

考慮到第一個雷達庫已經是一個DLL,我只有一個頭文件和lib文件(沒有源代碼)。

非常感謝您的回覆。

+0

一些語言編輯由我來完成。我希望我保留你的意思。不過,我仍然對「雷達」感到困惑。 – DevSolar 2010-09-15 09:35:46

回答

0

您可以通過構建代碼(和預編譯頭文件)來解決編譯問題,以便沒有文件同時包含winsock.h和winsock2.h,這可能意味着要麼根本不使用預編譯頭文件,要麼在更復雜的方式比在MFC項目中正常...

你可以包裝每個DLL在一個COM對象,並通過你的主程序通過COM訪問它們。這具有將主編譯中兩個DLL的使用完全分開的優點。

您可以將每個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> 
+0

哪位工作? – 2010-09-16 13:40:15