Здравствуйте, уважаемые программисты.
Есть DLL, в который внедрены ресурсы (много звуковых файлов). Пишу код вида
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | library MyLib;
uses
System . SysUtils,
System . Classes, mmSystem, WinAPI . Windows;
{$R MyRes.res}
procedure playClick (button: pchar );
var hResInfo: hrsrc;
begin
hResInfo:=FindResource(hInstance, button, RT_RCDATA);
if hresInfo<> 0 then
sndPlaySound(button, SND_RESOURCE + SND_ASYNC + SND_NODEFAULT)
else
sndPlaySound( 'remain' , SND_RESOURCE + SND_ASYNC + SND_NODEFAULT)
end ;
exports playClick;
end .
|
Однако ресурсы почему-то не внедряются. Если создать программу с вызовом DLL вида
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | type
TForm1 = class (TForm)
procedure FormKeyPress(Sender: TObject; var Key: Char );
private
public
end ;
procedure playClick(button: pchar ); stdcall; external 'MyLib.dll' ;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R MyRes.res}
procedure TForm1 . FormKeyPress(Sender: TObject; var Key: Char );
var s: string ;
begin
s:= 'e' +Key;
PlayClick( pchar (s));
end ;
|
тогда работает как надо (по нажатию на клавишу идет звук). Но если убрать ресурс отсюда, то звук не работает. А я хочу, чтобы ресурсы были вшиты в библиотеку, здесь они не нужны. Почему не получается?