请问高手,我的程序错在哪里啊?我用VC2008按照VC6.0的书想编写一个播放器,下面是在编写“打开歌曲”按钮遇到的错误。求高手指导啊!
1>------ 已启动生成: 项目: 我的MP3播放器, 配置: Debug Win32 ------
1>我的MP3播放器 : warning PRJ0042 : 未设置文件“stdafx.h”的自定义生成步骤的“输出”属性。将跳过此自定义生成步骤。
1>正在执行自定义生成步骤
1>已跳过自定义生成工具。
1>正在编译...
1>我的MP3播放器Dlg.cpp
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(170) : error C2664: “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 3 从“int”转换为“LPCTSTR”
1>        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(181) : error C2664: “mciGetErrorStringW”: 不能将参数 2 从“LPSTR”转换为“LPWSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(182) : error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“char [256]”转换为“LPCTSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(184) : error C2065: “MB_ICONWARING”: 未声明的标识符
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(188) : error C2664: “strcmp”: 不能将参数 2 从“CString”转换为“const char *”
1>        没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(189) : error C2440: “=”: 无法从“const char [10]”转换为“LPCWSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(190) : error C2664: “strcmp”: 不能将参数 2 从“CString”转换为“const char *”
1>        没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(191) : error C2440: “=”: 无法从“const char [10]”转换为“LPCWSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(196) : error C2664: “mciGetErrorStringW”: 不能将参数 2 从“LPSTR”转换为“LPWSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(197) : error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“char [256]”转换为“LPCTSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(199) : error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [13]”转换为“LPCTSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>生成日志保存在“file://c:\Users\Administrator\Desktop\我的mp3播放器\我的MP3播放器\我的MP3播放器\Debug\BuildLog.htm”
1>我的MP3播放器 - 11 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

解决方案 »

  1.   

    所有的char类型全改为TCHAR,字符常量前加_T,比如:_T("xxxx");
      

  2.   

    按照你说的做了,但还是存在下面的错误啊。
    1>------ 已启动生成: 项目: 我的MP3播放器, 配置: Debug Win32 ------
    1>我的MP3播放器 : warning PRJ0042 : 未设置文件“stdafx.h”的自定义生成步骤的“输出”属性。将跳过此自定义生成步骤。
    1>正在执行自定义生成步骤
    1>已跳过自定义生成工具。
    1>正在编译...
    1>我的MP3播放器Dlg.cpp
    1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(170) : error C2664: “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 3 从“int”转换为“LPCTSTR”
    1>        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
    1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(181) : error C2664: “mciGetErrorStringW”: 不能将参数 2 从“LPSTR”转换为“LPWSTR”
    1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
    1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(188) : error C2664: “strcmp”: 不能将参数 1 从“const wchar_t [4]”转换为“const char *”
    1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
    1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(190) : error C2664: “strcmp”: 不能将参数 1 从“const wchar_t [4]”转换为“const char *”
    1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
    1>c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(196) : error C2664: “mciGetErrorStringW”: 不能将参数 2 从“LPSTR”转换为“LPWSTR”
    1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
    1>生成日志保存在“file://c:\Users\Administrator\Desktop\我的mp3播放器\我的MP3播放器\我的MP3播放器\Debug\BuildLog.htm”
    1>我的MP3播放器 - 5 个错误,1 个警告
    ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
      

  3.   

    推荐以前看过的网址:http://blog.csdn.net/phunxm/article/details/5082618只是编码问题而已,LZ慢慢看啊,熟悉Unicode编程方法,这样比较好,不要改成多字节编程.
      

  4.   

    从上面出错信息来看,应该是两个问题,一个还是UNICODE的问题,比如:
    c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(181) : error C2664: “mciGetErrorStringW”: 不能将参数 2 从“LPSTR”转换为“LPWSTR”
    明显它要求UNICODE的字串LPWSTR,但是你传给它的是LPSTR,LPSTR是ANSI字符串。c:\users\administrator\desktop\我的mp3播放器\我的mp3播放器\我的mp3播放器\我的mp3播放器dlg.cpp(188) : error C2664: “strcmp”: 不能将参数 1 从“const wchar_t [4]”转换为“const char *”
    ==============
    对于UNICODE来说,strcmp是不能用的,strcmp只能用于ANSI字符串,对于UNICODE来说,要用wcscmp
      

  5.   

    “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 3 从“int”转换为“LPCTSTR”
    =========
    这个错误应该和UNICODE无关,应该是你自己写错了。没代码不好说。