- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对如何将 PlaySound() 与资源文件一起使用感到有点困惑,因为阅读此处并测试所有内容,我无法在控制台提示符 u_u 中获取 wav 文件声音。所以,如果你能帮助我,我将非常感激。$
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "resources.h"
#pragma comment(lib, "Winmm.lib")
int main () {
srand (time(NULL));
int secreto, num, s1, s2, s3, d1, d2, d3, toque, fama, computer, ntoques, nfamas, fin, pc;
PlaySound(MAKEINTRESOURCE(sound), NULL, SND_RESOURCE | SND_ASYNC | SND_LOOP);
printf ("\n\n\t\t***************************************\n\n");
printf ("\n\n\t\t** Bienvenido al juego: Toque y Fama **\n\n"); //momento donde se inicia el juego
printf ("\n\n\t\t***************************************\n\n");
secreto = (rand()%899+100); //funcion que permitira aleatoriamente elegir un numero secreto
printf ("\n\n\n\tEn este juego tienes que adivinar el numero que estoy pensando! \n\n\t\t\tSeras capaz de lograrlo?\n\n\n");
printf ("\nPor favor, ingrese un numero de tres cifras\n\n");
scanf ("\n%d",&num); //aqui el jugador digita un numero con el fin de adivinar el de su rival
while ((num<000)||(num<=011)||(num>=1000)) {
printf ("\n\nLos digitos ingresados no son de tres cifras");
printf ("\n\nIngrese un nuevo numero: \n\n");
scanf ("%d",&num);
}
while (num != secreto) { //se produciran iteraciones siempre que el numero que se digite sea distinto al numero secreto del rival
s1= secreto/100;
s2= (secreto%100-secreto%100%10)/10; //aqui se hace la division del numero secreto para poder hacer las combinaciones
s3= secreto%100%10;
d1= num/100;
d2= (num%100-num%100%10)/10; //lo mismo se hace con el numero dado por el rival
d3= num%100%10;
toque = 0;
fama = 0;
if ((d1==s1)||(d2==s2)||(d3==s3)||(d1==s2)||(d1==s3)||(d2==s1)||(d2==s3)||(d3==s1)||(d3==s2)) { //aca se ven las combinaciones posibles de toques y famas
if (d1==s1){
fama=fama+1;
}
if (d2==s2){
fama=fama+1;
}
if (d3==s3){
fama=fama+1;
}
if (d1==s2){
toque=toque+1;
}
if (d1==s3){
toque=toque+1;
}
if (d2==s1){
toque=toque+1;
}
if (d2==s3){
toque=toque+1;
}
if (d3==s1){
toque=toque+1;
}
if (d3==s2){
toque=toque+1;
}
if (toque==1){
printf ("Tu tienes un toque\n");
}
if (toque==2||toque==3){
printf ("Tu tienes %d toques\n",toque);
}
if (fama==1){
printf ("Tu tienes una fama\n");
}
if (fama==2||fama==3){
printf ("Tu tienes %d famas\n",fama);
}
}
computer = (rand()%899+100); //esta funcion permitira generar el numero que cumplira la funcion de adivinar el secreto rival
printf ("\n\t\t\t*******************\n\n");
printf ("\n\t\t\tTurno de la Maquina\n\n");
printf ("\n\t\t\t*******************\n\n");
printf ("\n\nNo has acertado, estos son mis numeros: \n\n");
printf ("%d\n\n",computer);
printf ("\nIngrese cantidad de toques acertados\n\n");
scanf ("\n%d",&ntoques);
while ((ntoques<0)||(ntoques>=4)) {
printf ("\nLos toques ingresados no son correctos. Favor ingresar nuevamente\n\n");
scanf ("\n%d",&ntoques);
}
printf ("\nIngrese cantidad de famas acertadas\n\n");
scanf ("\n%d",&nfamas);
while ((nfamas<0)||(nfamas>=4)) {
printf ("\nLas famas ingresadas no son correctas. Favor ingresar nuevamente\n\n");
scanf ("\n%d",&nfamas);
}
if (nfamas==3) {
pc = 1;
fin = secreto;
num = fin;
}
else {
printf ("\n\t\t\t*****************\n\n");
printf ("\n\t\t\tTurno del Jugador\n\n"); //se vuelve a la iteracion si no se ha adivinado el numero
printf ("\n\t\t\t*****************\n\n");
printf ("\n\nIngresa un nuevo numero: \n\n");
scanf ("\n%d",&num);
while ((num<000)||(num<=011)||(num>=1000)) {
printf ("\nLos digitos ingresados no son de tres cifras");
printf ("\n\nIngrese un nuevo numero: \n\n");
scanf ("\n%d",&num);
}
}
}
if (pc==1) {
printf ("\n\nTe he derrotado\n\n"); //si se adivina, sale de la iteracion y escribe la derrota del jugador
printf ("\n\nEl juego ha concluido\n\n");
}
else {
printf ("\n\nMe has derrotado\n\n"); //si el jugador adivina el secreto rival, el ordenador escribira esta frase
printf ("\n\nEl juego ha concluido\n\n");
}
return 0;
}
我的资源文件显示以下行
sound WAVE "eric johnson - 017 eric johnson - cliffs of dover441.wav"
并且,头文件(resources.h),简单
#ifndef RESOURCE_H_INCLUDED
#define RESOURCE_H_INCLUDED
#define sound 1001
#endif // RESOURCE_H_INCLUDED
编译时,我添加了标志 -lwinmm 和 -mwindows 并且程序进行了编译,但是,当我执行它时,我没有从程序的其余部分得到任何声音或响应,只消耗内存,但是,没有其他任何东西.
谢谢你所做的一切:3。
最佳答案
您正在传递一个参数,但程序没有使用它。修改如下
int main(int argc, const char* argv[])
...
PlaySound(TEXT(argv[1]), NULL, SND_FILENAME);
这将获取您传入的文件名并播放它。
编辑1检查这是否有效
PlaySound((LPCTSTR) SND_ALIAS_SYSTEMSTART, NULL, SND_ALIAS_ID);
您应该听到启动声音 - 这基本上证明 PlaySound 基本上可以工作。如果您根本听不到任何声音,则可能存在其他问题。请注意,无论您加载什么曲调,都必须适合内存。
如果有效,请尝试
PlaySound(TEXT("SystemStart"), NULL, SND_ALIAS);
如果有效,请将\windows\media\chimes.wav 复制到当前目录并尝试
PlaySound(TEXT(".\\chimes.wav"), NULL, SND_FILENAME);
如果这不起作用,请找出运行时目录。一旦您开始工作,请尝试使用您的 .wav 文件。如果可行,请尝试使用完整路径名
PlaySound(TEXT("\\Windows\\Media\\Windows Logoff Sound.wav"), NULL, SND_FILENAME);
如果有效,请尝试使用 WAV 文件的完整路径。
关于c - PlaySound() 与资源文件不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24879363/
我在Windows 10中使用一些简单的Powershell代码遇到了这个奇怪的问题,我认为这可能是我做错了,但我不是Powershell的天才。 我有这个: $ix = [System.Net.Dn
var urlsearch = "http://192.168.10.113:8080/collective-intellegence/StoreClicks?userid=" + userId +
我有一个非常奇怪的问题,过去两天一直让我抓狂。 我有一个我试图控制的串行设备(LS 100 光度计)。使用设置了正确参数的终端(白蚁),我可以发送命令(“MES”),然后是定界符(CR LF),然后我
我目前正试图让无需注册的 COM 使用 Excel 作为客户端,使用 .NET dll 作为服务器。目前,我只是试图让概念验证工作,但遇到了麻烦。 显然,当我使用 Excel 时,我不能简单地使用与可
我开发了简单的 REST API - https://github.com/pavelpetrcz/MandaysFigu - 我的问题是在本地主机上,WildFly 16 服务器的应用程序运行正常。
我遇到了奇怪的情况 - 从 Django shell 创建一些 Mongoengine 对象是成功的,但是从 Django View 创建相同的对象看起来成功,但 MongoDB 中没有出现任何数据。
我是 flask 的新手,只编写了一个相当简单的网络应用程序——没有数据库,只是一个航类搜索 API 的前端。一切正常,但为了提高我的技能,我正在尝试使用应用程序工厂和蓝图重构我的代码。让它与 pus
我的谷歌分析 JavaScript 事件在开发者控制台中运行得很好。 但是当从外部 js 文件包含在页面上时,它们根本不起作用。由于某种原因。 例如; 下面的内容将在包含在控制台中时运行。但当包含在单
这是一本名为“Node.js 8 the Right Way”的书中的任务。你可以在下面看到它: 这是我的解决方案: 'use strict'; const zmq = require('zeromq
我正在阅读文本行,并创建其独特单词的列表(在将它们小写之后)。我可以使它与 flatMap 一起工作,但不能使它与 map 的“子”流一起工作。 flatMap 看起来更简洁和“更好”,但为什么 di
我正在编写一些 PowerShell 脚本来进行一些构建自动化。我发现 here echo $? 根据前面的语句返回真或假。我刚刚发现 echo 是 Write-Output 的别名。 写主机 $?
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我将一个工作 View Controller 类从另一个项目复制到一个新项目中。我无法在新项目中加载 View 。在旧项目中我使用了presentModalViewController。在新版本中,我
我对 javascript 很陌生,所以很难看出我哪里出错了。由于某种原因,我的功能无法正常工作。任何帮助,将不胜感激。我尝试在外部 js 文件、头部/主体中使用它们,但似乎没有任何效果。错误要么出在
我正在尝试学习Flutter中的复选框。 问题是,当我想在Scaffold(body :)中使用复选框时,它正在工作。但我想在不同的地方使用它,例如ListView中的项目。 return Cente
我们当前使用的是 sleuth 2.2.3.RELEASE,我们看不到在 http header 中传递的 userId 字段没有传播。下面是我们的代码。 BaggageField REQUEST_I
我有一个组合框,其中包含一个项目,比如“a”。我想调用该组合框的 Action 监听器,仅在手动选择项目“a”完成时才调用。我也尝试过 ItemStateChanged,但它的工作原理与 Action
你能看一下照片吗?现在,一步前我执行了 this.interrupt()。您可以看到 this.isInterrupted() 为 false。我仔细观察——“这个”没有改变。它具有相同的 ID (1
我们当前使用的是 sleuth 2.2.3.RELEASE,我们看不到在 http header 中传递的 userId 字段没有传播。下面是我们的代码。 BaggageField REQUEST_I
我正在尝试在我的网站上设置一个联系表单,当有人点击发送时,就会运行一个作业,并在该作业中向所有管理员用户发送通知。不过,我在失败的工作表中不断收到此错误: Illuminate\Database\El
我是一名优秀的程序员,十分优秀!