Bugs item #1727054, was opened at 2007-05-28 20:43
Message generated for change (Comment added) made by surfsmurf
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=865514&aid=1727054&group_id=173455
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: w32api
Group: None
Status: Open
Resolution: Accepted
Priority: 5
Private: No
Submitted By: Carsten S�rensen (surfsmurf)
Assigned to: Pedro Alves (pedroalves)
Summary: waveOutGetDevCaps problem
Initial Comment:
Using mingw32ce-0.10.0.20070208-cygwin
There's a problem with waveOutGetDevCaps - mmsystem.h defines
waveOutGetDevCapsA and waveOutGetDevCapsW, but libcoredll.a exports only
waveOutGetDevCaps.
If I do
---
#undef waveOutGetDevCaps
extern "C" MMRESULT WINAPI waveOutGetDevCaps(UINT,LPWAVEOUTCAPSW,UINT);
---
in my source, waveOutGetDevCaps works.
Regards,
Carsten Sorensen
----------------------------------------------------------------------
>Comment By: Carsten S�rensen (surfsmurf)
Date: 2007-05-30 03:04
Message:
Logged In: YES
user_id=197168
Originator: YES
Scratch that - that section is probably fine.
The problem is that mmsystem.h still declares waveOutGetDevCapsA and
waveOutGetDevCapsW as function prototypes - but not waveOutGetDevCaps.
I'm at a loss to explain why your example compiles :-/ ... perhaps because
I define _WIN32_WCE on the command line?
----------------------------------------------------------------------
Comment By: Carsten S�rensen (surfsmurf)
Date: 2007-05-30 02:52
Message:
Logged In: YES
user_id=197168
Originator: YES
Hmm still no go.
g++ -o WaveOutDevice.o -c -O3 -Wall -Wno-unused-variable
-D_WIN32_WCE=0x0300 -I/Users/cso/code/oldsk00l/library WaveOutDevice.cpp
WaveOutDevice.cpp: In member function 'virtual bool
Oldsk00l::CWaveOutDevice::Open()':
WaveOutDevice.cpp:94: error: 'waveOutGetDevCaps' was not declared in this
scope
Note that I define _WIN32_WCE on the command line when calling g++ ...
This section in mmsystem.h looks all backwards to me
#ifndef _WIN32_WCE
#define waveOutGetDevCaps waveOutGetDevCapsW
#define waveOutGetErrorText waveOutGetErrorTextW
#define waveInGetDevCaps waveInGetDevCapsW
#define waveInGetErrorText waveInGetErrorTextW
#else
#define waveOutGetDevCapsW waveOutGetDevCaps
#define waveOutGetErrorTextW waveOutGetErrorText
#define waveInGetDevCapsW waveInGetDevCaps
#define waveInGetErrorTextW waveInGetErrorText
#endif
----------------------------------------------------------------------
Comment By: Pedro Alves (pedroalves)
Date: 2007-05-30 00:53
Message:
Logged In: YES
user_id=1370634
Originator: NO
Sorry for that,
Please try the new attached patch.
Tested by buiding this:
#include <windows.h>
#include <mmsystem.h>
int main ()
{
waveOutGetDevCaps (0,NULL,0);
return 0;
}
File Added: mmsystem.h.2.diff
----------------------------------------------------------------------
Comment By: Carsten S�rensen (surfsmurf)
Date: 2007-05-29 11:17
Message:
Logged In: YES
user_id=197168
Originator: YES
I grabbed the newer of the two diffs. There are new problems - when
including mmsystem.h now, I get
g++ -o WaveOutDevice.o -c -O3 -Wall -Wno-unused-variable
-D_WIN32_WCE=0x0300 -I/Users/cso/code/oldsk00l/library WaveOutDevice.cpp
/Users/cso/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/../../../../arm-wince-mingw32ce/include/mmsystem.h:1568:
error: 'LPWAVEOUTCAPS' has not been declared
/Users/cso/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/../../../../arm-wince-mingw32ce/include/mmsystem.h:1601:
error: 'LPWAVEINCAPS' has not been declared
/Users/cso/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/../../../../arm-wince-mingw32ce/include/mmsystem.h:1669:
error: 'LPMIXERCAPS' has not been declared
/Users/cso/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/../../../../arm-wince-mingw32ce/include/mmsystem.h:1678:
error: 'LPMIXERLINE' has not been declared
/Users/cso/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/../../../../arm-wince-mingw32ce/include/mmsystem.h:1687:
error: 'LPMIXERLINECONTROLS' has not been declared
WaveOutDevice.cpp: In member function 'virtual bool
Oldsk00l::CWaveOutDevice::Open()':
WaveOutDevice.cpp:94: error: invalid conversion from 'WAVEOUTCAPS*' to
'int'
WaveOutDevice.cpp:94: error: initializing argument 2 of 'MMRESULT
waveOutGetDevCaps(UINT, int, UINT)'
----------------------------------------------------------------------
Comment By: Pedro Alves (pedroalves)
Date: 2007-05-29 01:33
Message:
Logged In: YES
user_id=1370634
Originator: NO
Hi Carsten,
Thanks for reporting.
It looks like there are other functions with the
same problem, so I fixed them too. Please could you
try the attached patch to mmsystem.h?
Cheers,
Pedro Alves
File Added: mmsystem.h.diff
----------------------------------------------------------------------
Comment By: Pedro Alves (pedroalves)
Date: 2007-05-29 01:19
Message:
Logged In: YES
user_id=1370634
Originator: NO
Hi Carsten,
Thanks for reporting.
It looks like there are other functions with the
same problem, so I fixed them too. Please could you
try the attached patch to mmsystem.h?
Cheers,
Pedro Alves
File Added: mmsystem.h.diff
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=865514&aid=1727054&group_id=173455
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel