我一运行,它就提示,无效动态链接在'Winmm.dll'上,这是什么意思,怎么解决?
这是声明:
function WaveOutGetNumDevs:longint;stdcall;external 'winmm.dll' name 'WaveOutGetNumDevs';
RadioGroup1 用错了
procedure TForm1.Button1Click(Sender: TObject);
begin
RadioGroup1.Items.Add('有');
RadioGroup1.Items.Add('没有');
// 本来应该在RadioGroup1的Insepctor里设置比较直观的,写在这里你比较好看点。
if WaveOutGetNumDevs=0 then
RadioGroup1.ItemIndex:=1
else
radioGroup1.ItemIndex:=0;
end;
另外WaveOutGetNumDevs返回的是Cardinal不是longint。
见SDK :
/* waveform audio function prototypes */
WINMMAPI UINT WINAPI waveOutGetNumDevs(void);
typedef unsigned int UINT;
另外api最好不要直接定义
type
function WaveOutGetNumDevs:Cardinal;stdcall;external 'winmm.dll' name 'waveOutGetNumDevs';
建议声明和定义 分开方便调试
type
function WaveOutGetNumDevs():Cardinal;stdcall;
implementation
function WaveOutGetNumDevs; external 'winmm.dll' name 'waveOutGetNumDevs';