已结贴√

问题点数:20 回复次数:5

C语言读取wav文件的问题,请大侠,编译问题。

代码如下:#include

#include

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT ("SineWave") ;

HWND          hwnd ;

MSG           msg ;

WNDCLASS      wndclass ;

wndclass.style        = CS_HREDRAW | CS_VREDRAW ;

wndclass.lpfnWndProc= WndProc ;

wndclass.cbClsExtra   = 0 ;

wndclass.cbWndExtra   = 0 ;

wndclass.hInstance    = hInstance ;

wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;

wndclass.hCursor      = LoadCursor (NULL, IDC_ARROW) ;

wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ;

wndclass.lpszMenuName  = NULL ;

wndclass.lpszClassName = szAppName ;

if (!RegisterClass (&wndclass))

{

MessageBox (  NULL, TEXT ("Program requires Windows NT!"),

szAppName, MB_ICONERROR) ;

return 0 ;

}

hwnd = CreateWindow ( szAppName, TEXT ("Wave  13061128 李新"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, CW_USEDEFAULT,

CW_USEDEFAULT, CW_USEDEFAULT,

NULL, NULL, hInstance, NULL) ;

ShowWindow (hwnd, iCmdShow) ;

UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))

{

TranslateMessage (&msg) ;

DispatchMessage (&msg) ;

}

return msg.wParam ;

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

static int  cxClient, cyClient ;

HDC         hdc ;

PAINTSTRUCT ps ;

static int    i=1;

TEXTMETRIC    tm ;

static WORD    Channels;      //声道数目,1--单声道;2--双声道

static DWORD      SamplesPerSec ;//采样频率

static WORD    wBitsPerSample;      //每个采样需要的bit数

static DWORD   dwDataSize;  //去除ID和Size所占的字节数后剩下的其他字节数目

static long    size;

static    int    numbit;//一个样本的字节数;

static    int    num;//样本数

static  BYTE   *pData;

switch (message)

{

case WM_CREATE:

static HMMIO   file1;//定义HMMIO文件句柄;

file1=mmioOpen("13061128.wav",NULL,MMIO_READWRITE);//以读写模式打开所给的WAVE文件;

if(file1==NULL)

{

MessageBox(hwnd,"WAVE文件打开失败!","13061128",0);

return   NULL;

}

char   style[3];

while(mmioSeek(file1,i++,SEEK_SET)&&i<200)

{

mmioRead(file1,style,3);

if(style[0]=='f'&&style[1]=='m'&&style[2]=='t')

break;

}

//

mmioSeek(file1,i+9,SEEK_SET);

mmioRead(file1,style,2);

memcpy(&Channels,style,2);//声道

if(Channels==1)

MessageBox(hwnd,"单声道","13061128",0);

if(Channels==2)

MessageBox(hwnd,"双声道","13061128",0);

/

mmioSeek(file1,i+11,SEEK_SET);

mmioRead(file1,style,4);

memcpy(&SamplesPerSec,style,4);//采样频率

mmioSeek(file1,i+21,SEEK_SET);

mmioRead(file1,style,2);

memcpy(&wBitsPerSample,style,2);//每个采样需要的bit数

if(wBitsPerSample==8)

MessageBox(hwnd,"8位量化","13061128",0);/

if(wBitsPerSample==16)

MessageBox(hwnd,"16位量化","13061128",0);

char   style2[4];

while(mmioSeek(file1,i++,SEEK_SET)&&i<500)

{

mmioRead(file1,style2,4);

if(style2[0]=='d'&&style2[1]=='a'&&style2[2]=='t'&&style2[3]=='a')

{

//        MessageBox(hwnd,"data","13061128",0);

break;

}

}

mmioSeek(file1,i+3,SEEK_SET);

mmioRead(file1,(char*)&size,4);

//        if(size%560256==0)

//           MessageBox(hwnd,"qwwqeweq","46ty",0);

/

i=i+7;

numbit=(wBitsPerSample/8);//一个样本的字节数;

num=size/numbit;//样本数

//        if(560256==num)

//            MessageBox(hwnd,"qwwqeweq","46ty",0);

pData=(BYTE*)new   char[size];//

mmioSeek(file1,i,SEEK_SET);//对文件重新定位;

mmioRead(file1,(char*)pData,size);//

ReleaseDC (hwnd, hdc) ;

return 0 ;

case   WM_SIZE:

cxClient = LOWORD (lParam) ;

cyClient = HIWORD (lParam) ;

return 0 ;

case   WM_PAINT:

hdc = BeginPaint (hwnd, &ps) ;

if(Channels==1)

{

if(wBitsPerSample==8)

{

for(int k=0;k

{

for(int j=0;j

{

SetPixel(hdc,j-k,(WORD)*(pData+j),0) ;

}

PatBlt(hdc,0,0,50000,50000,WHITENESS);

}

MessageBox(hwnd,"播放完毕","13061128",0);

}

if(wBitsPerSample==16)

{

for(int k=0;k

{

for(int j=0;j

{

SetPixel(hdc,j-k,(WORD)*(pData+j*2),0) ;

}

PatBlt(hdc,0,0,50000,50000,WHITENESS);

}

MessageBox(hwnd,"播放完毕","13061128",0);

}

}

else if(Channels==2)

{

if(wBitsPerSample==8)

{

for(int k=0;k

{

for(int j=0;j

{

SetPixel(hdc,j-k,(WORD)*(pData+j*2),0) ;

}

for(j=0;j

{

SetPixel(hdc,j-k,(WORD)*(pData+1+j*2)+100,0) ;

}

PatBlt(hdc,0,0,50000,50000,WHITENESS);

}

MessageBox(hwnd,"播放完毕","13061128",0);

}

if(wBitsPerSample==16)

{

for(int k=0;k

{

for(int j=0;j

{

WORD w;

memcpy(&w,pData+j*4,2);

//    SetPixel(hdc,j-k,w%1000-400,0) ;

SetPixel(hdc,j-k,w/50+100,0) ;

}

for(j=0;j

{

WORD w;

memcpy(&w,pData+2+j*4,2);

//    SetPixel(hdc,j-k,w%1000-200,0) ;

SetPixel(hdc,j-k,w/50+350,0) ;

}

PatBlt(hdc,0,0,50000,50000,WHITENESS);

}

MessageBox(hwnd,"播放完毕","13061128",0);

}

}

return 0 ;

case   WM_DESTROY:

PostQuitMessage (0) ;

return 0 ;

}

return DefWindowProc (hwnd, message, wParam, lParam) ;

}

问题:编译时过不了啊。VC6.0编译器。

Linking...

wav.obj : error LNK2001: unresolved external symbol __imp__mmioRead@12

wav.obj : error LNK2001: unresolved external symbol __imp__mmioSeek@12

wav.obj : error LNK2001: unresolved external symbol __imp__mmioOpenA@12

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

Debug/wav.exe : fatal error LNK1120: 4 unresolved externals

执行 link.exe 时出错.

搜索更多相关主题的帖子:

C语言

c语言读文件编译,C语言读取wav文件的问题,请大侠,编译问题。相关推荐

  1. matlab读取wav文件出错,MATLAB读取wav文件

    %读一个文件夹中的多个wav文件,然后拼接在一起 clc; clear all; folder = 'D:/FFOutput/xiami/'; files = dir([folder '*.wav'] ...

  2. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

  3. matlab 读取WAV文件

    最近工作需要,要对wav文件中存储的声音信息进行分析处理.所以花了些时间收集了各种数学软件中处理wav 文件的方法. Matlab Matlab 是最方便的.甚至于不用写任何代码就能读取 wav 文件 ...

  4. java wav 波形_java读取wav文件(波形文件)并绘制波形图的方法

    本文实例讲述了java读取wav文件(波形文件)并绘制波形图的方法.分享给大家供大家参考.具体如下: 因为最近有不少网友询问我波形文件读写方面的问题,出于让大家更方便以及让代码能够得到更好的改进,我将 ...

  5. matlab读取wav文件

    matlab读取wav文件 wavread audioread [y,Fs,bits]=wavread('1.wav'); [y,Fs]=audioread('1.wav'); wavread mat ...

  6. python读取wav文件并进行FFT变换

    一.wav格式文件 WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台 ...

  7. java wav 读取_java读取wav文件(波形文件)并绘制波形图的方法

    本文实例讲述了java读取wav文件(波形文件)并绘制波形图的方法.分享给大家供大家参考.具体如下: 因为最近有不少网友询问我波形文件读写方面的问题,出于让大家更方便以及让代码能够得到更好的改进,我将 ...

  8. wave读取wav文件_什么是WAV和WAVE文件(以及如何打开它们)?

    wave读取wav文件 A file with the .wav or .wave file extension is a Waveform Audio File Format. It's a con ...

  9. c语言读dbf文件格式,C语言直接读取FOXBASE的DBF文件

    维普资讯 http://doc.docsou.com 1◇~ l 1 ( B s I 据的读取. 一 . 问题的提出 位置 1 表 1 D B F文件的文件参数表长度( B ) 1 船 H F OX ...

最新文章

  1. 微信小程序云开发,使用阿里云短信服务,搜索员工生日定期发送短信。
  2. 从0开始的Python学习001快速上手手册
  3. 在idea中使用构造方法
  4. 51Nod1502 苹果曼和纸
  5. Delphi的“动态窗体”技术实际应用[网络摘抄]
  6. 多媒体领域顶会,ACM MM 2020 会议论文下载
  7. 云架构师是做什么的_为什么以及如何成为云架构师
  8. pymysql模块的使用
  9. js实现数据流(日志流,报警信息等)滚动展示,并分页(含实现demo)
  10. Java 实现JSON字符串、JSON对象和Java对象的相互转换(fastjson)
  11. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验00 熟悉开发环境(2021级)
  12. php递归5,5.5.1 PHP递归函数
  13. python 组态_西门子组态WinCC自学入门视频教程资源_48讲
  14. Steam平台3款2D游戏开发软件对比(转)
  15. Win10怎么关闭开机启动项
  16. python 协程加多线程下载asyncio、ThreadPoolExecutor
  17. c++直角空心三角形_八年级数学三角形专题知识点汇总,掌握了考满分!
  18. mysql 5.6 免安装版_mysql 5.6.15的免安装版 安装
  19. 深入理解操作系统原理之设备管理
  20. 差序格局与关系取向社会

热门文章

  1. 对diff算法的理解
  2. 解决插入U盘后有提示音,但无法打开、格式化或恢复的问题
  3. rpath添加依赖库搜索路径
  4. Gradle如何排除依赖项目的某些包
  5. js或者jQuery模拟点击提交按钮button,触发提交操作
  6. 红帽第四季度订阅的强劲增长 整体表现超预期
  7. 2022中国中医药产业展,山东医药保健展,济南药交会9月举办
  8. CFS调度算法调度时机的理解
  9. 软件视频会议性能测试要点,IP网络视频会议系统中MCU性能测试方法的研究
  10. 【苹果家庭推iiMessage】React Native举行开发仍是iOS,用原生的代码实现类似webview的页面