用了这么久的DXUT,今天才发现对于shader中的变量无需先获取变量对于的handle然后再设置值,可以直接通过变量名来设置。

// V( g_pEffect->SetMatrix( g_hWorldViewProj, &mWorldViewProjection) );
V( g_pEffect->SetMatrix( "g_mWorldViewProj", &mWorldViewProjection) );

但是很奇怪,它会提示error C2664: “ID3DXEffect::SetMatrix”: 不能将参数 1 从“const char [17]”转换为“D3DXHANDLE”

这个问题原来就出现过,所以我一直用先获取HANDLE再设值的笨方法。一直以为是版本的问题。今天又遇到这个问题,获取HANDLE的方法实在太笨,所以就想研究下到底是哪里出了问题。对于用EmptyProject生成的项目和DX API中Install出来的项目的选项,发现EmptyProject生成出来的项目多了一个 /D "D3DXFX_LARGEADDRESS_HANDLE" 选项。

解决方法:在C/C++   ----->     预处理   -------->    预处理定义中删除 D3DXFX_LARGEADDRESS_HANDLE 这个选项

多谢OPENGPU里面的帖子:http://www.opengpu.org/forum.php?mod=viewthread&tid=8493

在里面找到了官方文档:http://msdn.microsoft.com/zh-cn/library/bb172855

DX中关于error C2664: “ID3DXEffect::SetMatrix”: 不能将参数 1 从“const char [17]”转换为“D3DXHANDLE”相关推荐

  1. error记录 | 不能将参数 1 从“const char [5]”转换为“LPCTSTR

    Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况.而后者是双字节方式,方便处理双字节字符.Wind ...

  2. C++ Error C2664:无法将参数 1 从“const char [9]”转换为“LPCWSTR”解决方案

    C++ Error C2664:无法将参数 1 从"const char [9]"转换为"LPCWSTR"解决方案 参考文章: (1)C++ Error C26 ...

  3. [error] MFC错误不能将参数1从const char [3]转换为const wchar_t *

    在做项目中经常遇到很多错误,这里我仅仅把自己遇到的一些错误和解决方法写出,供自己和大家查看. 代码如下: CRect rect; GetClientRect(&rect); CString s ...

  4. VS2017中C++无法将参数1从const char [8] 转换为char[]

    VS2017中开发遇到的问题: 看到网上有两种解决办法: 1.结构体中定义的 char * 前面加上 "const": 原因应该是函数的实参与形参类型不匹配, 字符串在内存中是一个 ...

  5. 关于VS2012使用make_pair编译提示“error C2664: “std::make_pair”: 不能将参数 1 从“int”转换为“int ””

     参照微软官方回复: #include <iostream> #include <ostream> #include <string> #include < ...

  6. C++中 出现C2664错误代码 从“const char [29]”转换为“const wchar_t *”

    报错内容: 报错无法 从"const char [29]"转换为"const wchar_t *" 解决办法 在属性页面将字符集修改为:使用多字节字符集就可以了 ...

  7. vs2019 报错信息:error C2664 解决方法

    1>D:\re.cpp(10,34): error C2664: "HMODULE LoadLibraryW(LPCWSTR)": 无法将参数 1 从"const ...

  8. ASSERT报错:error C2664: “AfxAssertFailedLine”: 不能将参数 1 从“TCHAR []”转换为“LPCSTR”...

    转载请注明来源:崨雁嫀筝 http://www.cnblogs.com/xuesongshu 这个错误是我在把tinyxml修改为宽字符(Unicode)版本时候遇到的问题,我首先按关键字把所有有ch ...

  9. error C2664: 'atof' : cannot convert parameter 1 from 'int' to 'const char *'

     double ff=atof(b); error C2664: 'atof' : cannot convert parameter 1 from 'int' to 'const char *' ...

最新文章

  1. RxJava from 处理list时,其中有一个出错时如何继续发送下面的list内容。
  2. 【01】网页中清除历史浏览记录能不能彻底删除浏览记录?
  3. UA MATH563 概率论的数学基础 鞅论初步9 分支过程简介
  4. poj 1050(DP)
  5. 教你用Java的方式创建一个自己的Tomcat容器
  6. 【机器学习】如何解决数据不平衡问题
  7. c语言ole错误,错误 '8002801c' 访问 OLE 注册表的错误
  8. double类型的数值转为小数点2位
  9. 要是面试官再问我volatile,我就这么答
  10. 阿里云盘下载安装保存文件教程
  11. 基于cocos creator 3.4 实现虚拟摇杆
  12. upupw php 探针_UPUPW PHP探针安装使用
  13. UIDataCollector的下载和使用
  14. Mosaic(马赛克)模组正式支持OSNMA技术
  15. 有孚网络CEO安柯:IT部门趋于轻量化 “平台+服务”或将成为主流
  16. Win10下开机自动启动运行bat脚本并打开cmd运行命令
  17. 数据结构与算法——时间与空间复杂度
  18. C语言实验:打印日历
  19. MacBook 通过Boot Camp安装win7双系统时提示缺少所需的CD/DVD驱动器设备驱动程序。
  20. 簇大小与分区4k对齐的关系

热门文章

  1. C++标准转换运算符:static_cast
  2. redis五种数据类型的使用场景
  3. 面向对象思想的设计原则概述
  4. 分布式多副本一致性协议:paxos
  5. Android开发的四大组件
  6. 春节期间的学习小目标
  7. Android/Linux boot time分析优化
  8. 一些关于java线程编程的事儿
  9. SSH中直接运行php文件
  10. 网站直达上线运营,API接口开发中