你的DirectX sdk是否是2008 march版本?我用February 2007在vs2008下编译运行没有问题,你可以换个版本试下

解决方案 »

  1.   

    在新的DirectX 9 SDK 中 (就是2008年8月)对于 extern 表示的是全局常量,不能在HLSL中修改变量,只能在HLSL外修改。
    对于新的版本,尽量不要在VS 或PS 中修改变量。
      

  2.   

    我现在也遇到相同的问题了,呵呵,多亏看了这个帖子。话说本人刚开始学HLSL,照着龙书学的,不知各位是怎么调试shader的呢?按书上的那个用MessageBox显示shader编译的错误信息的方法,编码会有问题,出来的信息都是乱码,我还得在程序里加断点,把GetBufferPointer()转成char *才看到的大家是不是都用render monkey或者fx composer之类的?