游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3046|回复: 4

[求助]在学clayman的深入MDX 18时遇到大问题了。

[复制链接]

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2006-4-12 17:03:00 | 显示全部楼层 |阅读模式
在18讲的时候,第1个例子和第2个例子都出现未处理 InvalidCallException错误,能帮我解答下吗?代码和例子,教材上都是一样的~~

但是教材带的例子,都可以顺利编译运行。


下面是出错的地方和错误信息,附件是源码~



     第1个例子:

     private void OnDeviceReset(object sender, EventArgs e)

{            

rts = new RenderToSurface(dev, RenderSurfaceSize, RenderSurfaceSize, Format.X8B8G8R8, true, DepthFormat.D16);

         renderTexture = new Texture(dev, RenderSurfaceSize, RenderSurfaceSize, 1, Usage.RenderTarget, ormat.X8B8G8R8,Pool.Default);

     renderSurface = renderTexture.GetSurfaceLevel(0);

}

运行时,这段代码中的  ( renderTexture = new Texture(dev, RenderSurfaceSize, RenderSurfaceSize, 1, Usage.RenderTarget, ormat.X8B8G8R8,Pool.Default); ) 就会出错,

第2个例子也是出这个错,位置是在

        private void OnDeviceReset(object sender, EventArgs e)

        {

            Device dev = (Device)sender;

            rte = new RenderToEnvironmentMap(dev, CubeMapSize, 1, Format.X8B8G8R8, true, DepthFormat.D16);

            environment = new CubeTexture(dev, CubeMapSize, 1, Usage.RenderTarget, Format.X8B8G8R8, Pool.Default);

        }



environment = new CubeTexture(dev, CubeMapSize, 1, Usage.RenderTarget, Format.X8B8G8R8, Pool.Default)就是这句出错~


VS2005的提示:

未处理 Microsoft.DirectX.Direct3D.InvalidCallException

  Message="应用程序中的错误。"

  Source="Microsoft.DirectX.Direct3D"

  ErrorCode=-2005530516

  ErrorString="D3DERR_INVALIDCALL"

  StackTrace:

       在 Microsoft.DirectX.Direct3D.Texture..ctor(Device device, Int32 width, Int32 height, Int32 numLevels, Usage usage, Format format, Pool pool)

       在 test18.Form1.OnDeviceReset(Object sender, EventArgs e) 位置 C:\Documents and Settings\collo\My Documents\Visual Studio 2005\Projects\test18\test18\Form1.cs:行号 88

       在 test18.Form1.InitializeGraphics() 位置 C:\Documents and Settings\collo\My Documents\Visual Studio 2005\Projects\test18\test18\Form1.cs:行号 59

       在 test18.Program.Main() 位置 C:\Documents and Settings\collo\My Documents\Visual Studio 2005\Projects\test18\test18\Program.cs:行号 21

       在 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)

       在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

       在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

       在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)

       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

       在 System.Threading.ThreadHelper.ThreadStart()


sf_20064121737.rar

406.86 KB, 下载次数:

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-4-12 17:07:00 | 显示全部楼层

Re:[求助]在学clayman的深入MDX 18时遇到大问题了。

就是在为device 订阅created事件时。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2006-4-12 18:13:00 | 显示全部楼层

Re:[求助]在学clayman的深入MDX 18时遇到大问题了。

我又看了一下原来附件里帖的代码
都可以编译运行啊
你在看看代码是不是其他地方出错了
还有不同的SDK版本 可能要做一点点修改

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2006-4-12 18:22:00 | 显示全部楼层

Re:[求助]在学clayman的深入MDX 18时遇到大问题了。

可以在初始化的时候加入
Device.IsUsingEventHandlers = false;
试试

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-4-13 19:35:00 | 显示全部楼层

Re:[求助]在学clayman的深入MDX 18时遇到大问题了。

加了还是那样。。
我在检查下代码去。。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 05:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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