数组出现乱码,mciSendString 不能暂停

库伯 2012-08-05 10:04:35
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>

#include <commdlg.h>
#include <mmsystem.h>

#include "resource.h"
#include "MainDlg.h"

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
}

return FALSE;
}

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
return TRUE;
}

void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
OPENFILENAME ofn;
TCHAR szFile[256];
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.lpstrFile=szFile;
ofn.lpstrFile[0]=TEXT('\0');
ofn.nMaxFile=sizeof(szFile);
ofn.lpstrFilter=TEXT("ALL\0*.*\0MP3\0*.MP3\0");
ofn.nFilterIndex=2;
ofn.lpstrFileTitle=NULL;
ofn.nMaxFileTitle=0;
ofn.lpstrInitialDir=NULL;
ofn.Flags=OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST;

switch(id)
{
case IDC_OPEN:
{
if(GetOpenFileName(&ofn))
{
//MessageBox(hwnd,szFile,TEXT("123"),MB_OK);
TCHAR shortPath[256];
GetShortPathName(szFile,shortPath,sizeof(shortPath));
TCHAR temp[300];
wsprintf(temp,"play %s",shortPath);
mciSendString(temp,NULL,0,NULL);
}
}
break;
case IDC_PAUSE:
{
TCHAR temp_p[300];
TCHAR shortPath[256];
GetShortPathName(szFile,shortPath,sizeof(shortPath));
wsprintf(temp_p,"pause %s",shortPath);
mciSendString (temp_p, "",0,NULL);
}
break;
default:
break;
}
}

void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}


一个简单的mp3播放器,暂停按钮不是实现暂停,调试发现:在Main_OnCommand定义的数组变量TCHAR szFile[256];在执行完case IDC_OPEN:的时候是正常的值。执行完case IDC_PAUSE:的时候就变成乱码,导致case IDC_PAUSE:shortPath,和temp_p都为乱码!希望高人指点!
...全文
85 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧