无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 507|回复: 4
打印 上一主题 下一主题

[求助] 求助: C++代码 无法通过

[复制链接]
跳转到指定楼层
1#
发表于 2024-4-12 09:34:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
《游戏编程入门(第4版)》,下载的随书源码。
书内采用VS2013版本。DirectX版本未指明,我用的是DX9。


前10章的例程,经调试微改后,都成功执行。
但第11章的例程,新加入音频效果。编译错误。


源码度盘下载:https://pan.baidu.com/s/1sMdtAyVKXYgqGJcxvj6kCQ?pwd=744x


环境:C-Free 5.0 + DirectX 9.0

32,33,35,37行 分别报错。
error: expected primary-expression before ';' token


32    wc.hIcon         = NULL;
33    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
34    wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
35    wc.lpszMenuName  = NULL;
36    wc.lpszClassName = APPTITLE.c_str();
37    wc.hIconSm       = NULL;


问题是,这个MyWindows.cpp,和6~10章的MyWindows.cpp完全一样,一个字符不差。
前几章的,都编译通过,执行成功。根本没报这几行错误。


貌似是NULL定义问题,可是前几章完全相同的MyWindows.cpp为什么不报错?


2#
 楼主| 发表于 2024-4-12 09:35:39 | 只看该作者
之前也报错:sal.h: No such file or directory


百度原因:
  sal.h免费下载,使用DirectSound时用;C-Free编程时没有,只有安装VS后库里才有。
  C-Free编程时有时会缺少这个东西,安装VS库里才自带这个;可以下载后直接使用,省的安装VS。我从VS2017库里找到的。
  在网上下载sal.h文件并拷贝到所在目录(C:\Program Files\Microsoft SDKs\Include)即可。
  sal.h下载:http://pan.baidu.com/s/1hswd5tU


  于是下载了sal.h,放到lib或include里。
  貌似是NULL定义的问题。sal.h里面确实有很多null ,比如:
#define _$null        Null=SA_Yes
#define _$maybenull   Null=SA_Maybe
#define _$notnull     Null=SA_No
……
    #define __null                  __declspec("SAL_null")
    #define __notnull               __declspec("SAL_notnull")
    #define __maybenull             __declspec("SAL_maybenull")
……
    #define __null
    #define __notnull
    #define __maybenull


难道是这个原因?


回复

使用道具 举报

3#
 楼主| 发表于 2024-4-12 15:52:52 | 只看该作者
哪位网友可否下载一楼的源码,在本地编译后,上传一个 test.exe ? (若不允许exe类型,可放入rar压缩包,上传)
看看是什么效果。


回复

使用道具 举报

4#
发表于 2024-4-14 14:28:22 | 只看该作者
感谢分享
回复

使用道具 举报

5#
发表于 2024-5-1 21:14:52 | 只看该作者
谢谢,感恩你我
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-9 15:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表