オレクサンダーからの答えはうまくいきます、どうもありがとう
mpg123-1.15.1-x86.zip をダウンロードするときに、1 つ追加する小さなことがあります。
上記のように、libmpg123-0.dll (dll) と libmpg123-0.dll.def (.lib を作成するために使用されるもの) が表示されます。名前を libmpg123-0.def に変更することをお勧めします。そうしないと、libmpg123-0.dll.dll という名前の dll が検索されますが、これは適切ではありません。
それに加えて、それはうまく機能します。この情報が何年も前にインターネット上になかったなんて信じられない。Olexanderに感謝し、stackoverflowに感謝します
参考までに、これは mpg123 を使用した単純な mp3 デコーダーです。
#include "mpg123/mpg123.h"
#define INBUFF 16384
#define OUTBUFF 32768
void loadMp3File(const char* filename)
{
mpg123_handle *mh;
unsigned char *buffer;
size_t buffer_size;
size_t done;
int err;
int channels, encoding;
long rate;
mpg123_init();
mh = mpg123_new(NULL, &err);
buffer_size = mpg123_outblock(mh);
buffer = (unsigned char*) malloc(buffer_size * sizeof(unsigned char));
/* open the file and get the decoding format */
mpg123_open(mh, filename);
mpg123_getformat(mh, &rate, &channels, &encoding);
/* set the output format and open the output device */
int m_bits = mpg123_encsize(encoding);
int m_rate = rate;
int m_channels = channels;
/* decode and play */
for (int totalBtyes = 0 ; mpg123_read(mh, buffer, buffer_size, &done) == MPG123_OK ; ) {
totalBtyes += done;
}
/* clean up */
free(buffer);
mpg123_close(mh);
mpg123_delete(mh);
mpg123_exit();
}