首页 文章

“类型int的参数与Visual Studio资源文件中的类型lpcwstr的参数不兼容”

提问于
浏览
-3

我正在尝试将 .wav 文件作为资源添加到我的C游戏中并在运行时播放它 . 这是我主要课程中的代码:

PlaySound(IDR_WAVE1, GetModuleHandle(NULL), SND_FILENAME);

我的 resource.h 档案:

#define IDR_WAVE1                       104
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        105
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1001
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

我的 .rc 文件:

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// English (United States) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE
BEGIN
    "#include ""winres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // English (United States) resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// English (Australia) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENA)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_AUS

/////////////////////////////////////////////////////////////////////////////
//
// WAVE
//

IDR_WAVE1 WAVE "C:\\Users\\zjf\\Desktop\\phil.wav"

#endif    // English (Australia) resources    
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED

问题是,我在尝试从资源中播放此文件时遇到错误 .

int类型的参数与lpcwstr类型的参数不兼容

我已经包含了 resource.h Headers ,我尝试在其中添加引号

PlaySound(IDR_WAVE1, GetModuleHandle(NULL), SND_FILENAME);

所以最终会:

PlaySound("IDR_WAVE1", GetModuleHandle(NULL), SND_FILENAME);

但是,这只会使Windows机器发出一次哔声 .

我会感激任何帮助,因为我从未使用过资源文件 .

1 回答

  • 1

    代替:

    PlaySound(IDR_WAVE1, GetModuleHandle(NULL), SND_FILENAME);
    

    改成:

    PlaySound(MAKEINTRESOURCE(IDR_WAVE1), GetModuleHandle(NULL), SND_RESOURCE);`
    

相关问题