EAX on a Borland compiler

Started by
5 comments, last by Crispy 21 years, 2 months ago
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
"Literally, it means that Bob is everything you can think of, but not dead; i.e., Bob is a purple-spotted, yellow-striped bumblebee/dragon/pterodactyl hybrid with a voracious addiction to Twix candy bars, but not dead."- kSquared
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.

No no no no! :)
the guids should be defined in headers. use INITGUID define and you''ll get their definitions (as opposed to just declarations).
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
"Literally, it means that Bob is everything you can think of, but not dead; i.e., Bob is a purple-spotted, yellow-striped bumblebee/dragon/pterodactyl hybrid with a voracious addiction to Twix candy bars, but not dead."- kSquared
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.

No no no no! :)
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]
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
"Literally, it means that Bob is everything you can think of, but not dead; i.e., Bob is a purple-spotted, yellow-striped bumblebee/dragon/pterodactyl hybrid with a voracious addiction to Twix candy bars, but not dead."- kSquared

This topic is closed to new replies.

Advertisement