This is my first time trying to integrate a third party library into a C++
project, so I may be stuck on something basic.  For now I'm just trying to
get the hellobrowser.c example from the tutorial to build.

I'm using Visual Studio 2010 and trying to hook in libmicrohttpd-0.9.17-w32.

Here's what I did so far:
- put the libmicrohttpd-0.9.17-w32 directory in the same directory as the
sln
-in properties, under C/C++ additional include directories, added :

C:\Documents and Settings\admin-jed\My Documents\Visual Studio
2010\Projects\mhdTest2\libmicrohttpd-0.9.17-w32\include

-in properties, under Linker additional library directories added

C:\Documents and Settings\admin-jed\My Documents\Visual Studio
2010\Projects\mhdTest2\libmicrohttpd-0.9.17-w32\lib (where sits the .dll.a,
.a , and .la files

I removed these includes:

#include <sys/types.h>
#include <sys/select.h>
#include <sys/socket.h>

...and added a .h file, jed_platform.h,  that tried to address
finding/defining these (after googling a bunch to find where these live on
windows):

"...size_t, fd_set, socklen_t and struct sockaddr data types and define
MHD_PLATFORM_H..."

...the best I could figure is this:

#ifndef MHD_PLATFORM_H
#define MHD_PLATFORM_H
#include <WS2tcpip.h>
#include <BaseTsd.h>
#include <winsock2.h>
#endif


So in my hellobrowser.c, I have this

#include "jed_platform.h"
#include "microhttpd.h"

as the new includes.  With this arrangement, many basic types are not
found, even though I understand they live in BaseTsd.h, for example,
ssize_t.

If I add explicit typedefs (which I know I shouldn't do) like this:

typedef unsigned int     size_t; //assumes 32 bit
typedef int              ssize_t; //assumes 32 bit

...then the ssize_t compile problem goes away.

Interestingly, when I guard those statements like this:

#ifndef _SIZE_T_DEFINED
typedef unsigned int     size_t; //assumes 32 bit
typedef int              ssize_t; //assumes 32 bit
#define _SIZE_T_DEFINED 5
#endif

Then the problems return, suggesting that something is #defining
_SIZE_T_DEFINED, yet the related types are not available to the compile.
This has me quite confused, though this would not be the first time.

Any help would be greatly appreciated!

Thanks,

Jed

Reply via email to