先上代码:
box.h
#include <graphics.h>
#include <conio.h>
#include <windows.h>
#include <process.h>
#include <wchar.h>
#include <mmsystem.h>
#pragma comment ( lib, "Winmm.lib" )
//全局变量区
//IMAGE图像指针
IMAGE bj1; //背景图1
IMAGE bf,BF; //播放
…………
//函数区
//拷贝图片至image
void cobyimage()
{
………………
}
//透明贴图
void TMimage(IMAGE* dstimg, int x, int y, IMAGE* srcimg, UINT transparentcolor)
{
HDC dstDC = GetImageHDC(dstimg);
HDC srcDC = GetImageHDC(srcimg);
int w = srcimg->getwidth();
int h = srcimg->getheight();
// 使用 Windows GDI 函数实现透明位图
TransparentBlt(dstDC, x, y, w, h, srcDC, 0, 0, w, h, transparentcolor);
}
//媒体播放
void PlayVideoInWindow(char* pszFileName, HWND hWnd, int x, int y, int iWidth, int iHeight)
{
char szSetWindowsMci[MAX_PATH] = { 0 };
char szSetVideoSizeMci[MAX_PATH] = { 0 };
// 构造mci打开视频命令, 设置视频播放的窗口
::wsprintf(szSetWindowsMci, "open \"%s\" alias myvideo parent %u style %u", pszFileName, hWnd, WS_CHILD);
// 构造mci视频播放位置大小命令, 设置视频播放的窗口
::wsprintf(szSetVideoSizeMci, "put myvideo window at %d %d %d %d", x, y, iWidth, iHeight);
// 打开视频, 指定窗口
::mciSendString(szSetWindowsMci, NULL, 0, NULL);
// 设置视频播放位置及画面大小
::mciSendString(szSetVideoSizeMci, NULL, 0, NULL);
// 播放视频
::mciSendString("play myvideo", NULL, 0, NULL);
}
播放.cpp(main)
#include "box.h"
//主函数
int mian()
{
initgraph(160, 90);
_getch();
}
报错(v2019,win10,debug,x86)
1>E:\CODE\C++\fir媒体播放器\box.h(28,33): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(28,33): message : 尝试匹配参数列表“(IMAGE *, const char [15])”时
1>E:\CODE\C++\fir媒体播放器\box.h(29,39): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(29,39): message : 尝试匹配参数列表“(IMAGE *, const char [20])”时
1>E:\CODE\C++\fir媒体播放器\box.h(30,35): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(30,35): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(31,35): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(31,35): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(32,35): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(32,35): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(33,35): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(33,35): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(34,34): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(34,34): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(35,36): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(35,36): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(36,35): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(36,35): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(37,35): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(37,35): message : 尝试匹配参数列表“(IMAGE *, const char [18])”时
1>E:\CODE\C++\fir媒体播放器\box.h(38,35): error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\easyx.h(264,6): message : 可能是“void loadimage(IMAGE *,LPCTSTR,int,int,bool)”
1>E:\CODE\C++\fir媒体播放器\box.h(38,35): message : 尝试匹配参数列表“(IMAGE *, const char [19])”时
1>E:\CODE\C++\fir媒体播放器\box.h(59,105): error C2664: “int wsprintfW(LPWSTR,LPCWSTR,...)”: 无法将参数 1 从“char [260]”转换为“LPWSTR”
1>E:\CODE\C++\fir媒体播放器\box.h(59,13): message : 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(333,1): message : 参见“wsprintfW”的声明
1>E:\CODE\C++\fir媒体播放器\box.h(61,90): error C2664: “int wsprintfW(LPWSTR,LPCWSTR,...)”: 无法将参数 1 从“char [260]”转换为“LPWSTR”
1>E:\CODE\C++\fir媒体播放器\box.h(61,13): message : 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(333,1): message : 参见“wsprintfW”的声明
1>E:\CODE\C++\fir媒体播放器\box.h(63,48): error C2664: “MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND)”: 无法将参数 1 从“char [260]”转换为“LPCWSTR”
1>E:\CODE\C++\fir媒体播放器\box.h(63,18): message : 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\mciapi.h(88,1): message : 参见“mciSendStringW”的声明
1>E:\CODE\C++\fir媒体播放器\box.h(65,50): error C2664: “MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND)”: 无法将参数 1 从“char [260]”转换为“LPCWSTR”
1>E:\CODE\C++\fir媒体播放器\box.h(65,18): message : 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\mciapi.h(88,1): message : 参见“mciSendStringW”的声明
1>E:\CODE\C++\fir媒体播放器\box.h(67,47): error C2664: “MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND)”: 无法将参数 1 从“const char [13]”转换为“LPCWSTR”
1>E:\CODE\C++\fir媒体播放器\box.h(67,18): message : 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\mciapi.h(88,1): message : 参见“mciSendStringW”的声明
昨天重装了系统,装了vc2019和easyx,安装时只勾选了C++开发。
改完后还有:
void PlayVideoInWindow(char* pszFileName, HWND hWnd, int x, int y, int iWidth, int iHeight)
{
char szSetWindowsMci[260] = { 0 };
char szSetVideoSizeMci[260] = { 0 };
// 构造mci打开视频命令, 设置视频播放的窗口
::wsprintf(szSetWindowsMci, L"open \"%s\" alias myvideo parent %u style %u", pszFileName, hWnd, WS_CHILD);
// 构造mci视频播放位置大小命令, 设置视频播放的窗口
::wsprintf(szSetVideoSizeMci, L"put myvideo window at %d %d %d %d", x, y, iWidth, iHeight);
// 打开视频, 指定窗口
::mciSendString(szSetWindowsMci, NULL, 0, NULL);
// 设置视频播放位置及画面大小
::mciSendString(szSetVideoSizeMci, NULL, 0, NULL);
// 播放视频
::mciSendString(L"play myvideo", NULL, 0, NULL);
}
E:(配置一样)
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0167 "char *" 类型的实参与 "LPWSTR" 类型的形参不兼容 fir媒体播放器 E:\CODE\C++\fir媒体播放器\box.h 61
有四个一样的