Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Crispy

EAX on a Borland compiler

This topic is 5583 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, has anyone here dealt with the EAX2.0 SDK on a Borland compiler (5.02 in my case)? I''m having a hard time getting it to link due to eaxguid.lib which doesn''t have a corresponding DLL and coff2omf outputs an empty file when I try to convert it. Hopefully someone has been in a similar situation and knows where to turn to/what to do because Google produces less than nothing in this case. Thanks, Crispy

Share this post


Link to post
Share on other sites
Advertisement
Try using implib and see if that help (that builds a lib file from a dll) If the lib file is using classes then your options are unfortunately limited. Go to Borlands website and read their newsgroup, there is an article there on how to adress this problem. Try a search on Google also, I know this can be found there.

____________________________________________________________
Try RealityRift at www.planetrift.com
Feel free to comment, object, laugh at or agree to this. I won''t engage in flaming because of what I have said.
I could be wrong or right but the ideas are mine.

Share this post


Link to post
Share on other sites
the guids should be defined in headers. use INITGUID define and you''ll get their definitions (as opposed to just declarations).

Share this post


Link to post
Share on other sites
quote:
Original post by MichaelT
Try using implib and see if that help (that builds a lib file from a dll) If the lib file is using classes then your options are unfortunately limited. Go to Borlands website and read their newsgroup, there is an article there on how to adress this problem. Try a search on Google also, I know this can be found there.

____________________________________________________________
Try RealityRift at www.planetrift.com
Feel free to comment, object, laugh at or agree to this. I won''t engage in flaming because of what I have said.
I could be wrong or right but the ideas are mine.




Hence the remark in my original post: "... which doesn''t have a corresponding DLL ..."


niyaw: if you mean just defining it as "#define INITGUID", it won''t work - still gives the same unresolved external linker error. Peering into eax.h shows that INITGUID is only handled for the OpenAL version (I''m using DirectSound).

The code in the header looks like this:

  
#ifndef OPENAL
#include <dsound.h>

/*
* EAX Wrapper Interface (using Direct X 7) {4FF53B81-1CE0-11d3-AAB8-00A0C95949D5}
*/
DEFINE_GUID(CLSID_EAXDirectSound,
0x4ff53b81,
0x1ce0,
0x11d3,
0xaa, 0xb8, 0x0, 0xa0, 0xc9, 0x59, 0x49, 0xd5);

/*
* EAX Wrapper Interface (using Direct X 8) {CA503B60-B176-11d4-A094-D0C0BF3A560C}
*/
DEFINE_GUID(CLSID_EAXDirectSound8,
0xca503b60,
0xb176,
0x11d4,
0xa0, 0x94, 0xd0, 0xc0, 0xbf, 0x3a, 0x56, 0xc);

#ifdef DIRECTSOUND_VERSION
#if DIRECTSOUND_VERSION == 0x0800
__declspec(dllimport) HRESULT WINAPI EAXDirectSoundCreate8(GUID*, LPDIRECTSOUND8*, IUnknown FAR *);
typedef HRESULT (FAR PASCAL *LPEAXDIRECTSOUNDCREATE8)(GUID*, LPDIRECTSOUND8*, IUnknown FAR*);
#endif
#endif

__declspec(dllimport) HRESULT WINAPI EAXDirectSoundCreate(GUID*, LPDIRECTSOUND*, IUnknown FAR *);
typedef HRESULT (FAR PASCAL *LPEAXDIRECTSOUNDCREATE)(GUID*, LPDIRECTSOUND*, IUnknown FAR*);

#else
#include <al.h>

#ifndef GUID_DEFINED
#define GUID_DEFINED
typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
#endif // !GUID_DEFINED

#ifndef DEFINE_GUID
#ifndef INITGUID
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
extern const GUID FAR name
#else
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
extern const GUID name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
#endif // INITGUID
#endif // DEFINE_GUID

/*
* EAX OpenAL Extension {4FF53B81-1CE0-11d3-AAB8-00A0C95949D5}
*/

typedef ALenum (*EAXSet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
typedef ALenum (*EAXGet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
#endif


What I need is CLSID_EAXDirectSound8... If anyone has the definition at hand, I''d appreciate sharing it with me.

Crispy

Share this post


Link to post
Share on other sites
quote:
Original post by Crispy

Hence the remark in my original post: "... which doesn''t have a corresponding DLL ..."




My fault for skimming your text, but I still suggest you to go to the Borland site for this one.

____________________________________________________________
Try RealityRift at www.planetrift.com
Feel free to comment, object, laugh at or agree to this. I won''t engage in flaming because of what I have said.
I could be wrong or right but the ideas are mine.

Share this post


Link to post
Share on other sites
quote:
Original post by Crispy
What I need is CLSID_EAXDirectSound8... If anyone has the definition at hand, I'd appreciate sharing it with me.


it's right in your post:
quote:

DEFINE_GUID(CLSID_EAXDirectSound8,
0xca503b60,
0xb176,
0x11d4,
0xa0, 0x94, 0xd0, 0xc0, 0xbf, 0x3a, 0x56, 0xc);





[edited by - niyaw on February 9, 2003 6:41:01 PM]

Share this post


Link to post
Share on other sites
MichaelT: happens to the best of us

Okay, #undef''ing DEFINE_GUID and redefining it before including eax.h seems to work. Why aren''t they providing the INITGUID compatibility for DirectSound - sheesh?

Anyhow,
thanks for your replies!

Crispy

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!