- Making sure that the release version of the code runs as well – it does. And a massive 19kb of executable. Of course, it’s not statically linked… That makes it 6,234kb
- C/C++
- General
- Additional Include Directories: $(DXSDK_DIR)\Include
- Language
- Treat WChar_t as Built in Type: Yes (/Zc:wchar_t)
- General
- Linker
- General
- Additional Library Directories: C:\Program Files %28×86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86
- Input
- Additional Dependencies:
- winmm.lib
- dxerr.lib
- X3DAudio.lib (only needed for DLL compilation)
- Additional Dependencies:
- General
- C/C++
- Making library
- Following directions here: http://msdn.microsoft.com/en-us/library/vstudio/ms235627.aspx
- For a DLL library, you *must* select the when creating your console application’s (that is actually not a console application, but never mind that…) “export variables” checkbox option. Still figuring out how to use this.
- For my first attempt in accessing the DLL, I’ve created the following method (The #defines are generated, I’ve included them for all to marvel at):
-
#ifdef DXAUDIOINTERFACEDLL_EXPORTS #define DXAUDIOINTERFACEDLL_API __declspec(dllexport) #else #define DXAUDIOINTERFACEDLL_API __declspec(dllimport) #endif DXAUDIOINTERFACEDLL_API BasicAudio* getBasicAudio(void);
- I think this produces an exported method that returns a pointer to the BasicAudio class. Not sure though. It may, though now I’m getting the following link errors:
- 1>DynamicLibConsoleTest.obj : error LNK2019: unresolved external symbol “public: void __thiscall BasicAudio::destroy(void)” (?destroy@BasicAudio@@QAEXXZ) referenced in function _wmain
- etc…
- 1>C:\Phil\MSVC Dev\MultichannelOr3dAudio\DxAudioInterfaceLibrary\Debug\DynamicLibConsoleTest.exe : fatal error LNK1120: 6 unresolved externals
- Which means the public inner methods are not available. Maybe the answer is to make a wrapper class for all the methods? Ugly, but something to try..
- Building wrapper class DXAUDIOINTERFACEDLL_API CDxAudioInterfaceDLL
- Done. Compiles and links now, but doesn’t run. Ah. I was declaring a local pointer to the internal BasicAudio class. Not pretty, but it does seem to work…
-
- Testing against Static console app – check
- Testing against Dynamic console app – check
- Switching to Release build
- Testing against Static console app – check
- Testing against Dynamic console app – check
- Checked everything into Subversion. Calling it a day.
Building the Audio Library
Leave a reply