奇怪的是“方法的类型参数不能从用法中推断出来。”

时间:2012-09-02 19:16:46

标签: c# text slimdx

我正试图在SlimDX中实现一些代码来共享D3D10和D3D11之间的纹理。

此方法导致问题:

    public void InitialiseTextureSharing()
    {
        // A DirectX10 Texture2D sharing the DirectX11 Texture2D
        sharedResource = new SlimDX.DXGI.Resource(textureD3D11);
        textureD3D10 = device10_1.OpenSharedResource(sharedResource.SharedHandle);  // This fails to compile! 

    }

我从编译器中收到以下错误:

无法从用法中推断出方法'SlimDX.Direct3D10.Device.OpenSharedResource(System.IntPtr)'的类型参数。尝试显式指定类型参数。

奇怪的是(对我来说)是,这段代码是直接从某些人的角色移植而来的。原始代码是:

        // A DirectX10 Texture2D sharing the DirectX11 Texture2D
        SlimDX.DXGI.Resource sharedResource = new SlimDX.DXGI.Resource(textureD3D11);
        SlimDX.Direct3D10.Texture2D textureD3D10 = device10_1.OpenSharedResource(sharedResource.SharedHandle);

与我的实现的不同之处在于我在SlimDX表单中实例化了'sharedResource'和'textureD3D10'对象。

我当然没想到编译错误。我基于此的代码来自:http://www.aaronblog.us/?p=36 ...这是关于使用DX11在SlimDX中绘制文本的全部内容。

我对这件事感到非常难过。我已经看了一些包含类似问题解决方案的帖子,但是目前我还不能适应这个问题。

任何指针都会受到超级赞赏。

更新:

来自SlimDX API docs的OpenSharedResource签名:

http://slimdx.org/docs/html/M_SlimDX_Direct3D11_Device_OpenSharedResource__1.htm

...和资源: http://slimdx.org/docs/html/T_SlimDX_DXGI_Resource.htm

1 个答案:

答案 0 :(得分:1)

根据文档,您收到错误的原因是代码错误。 OpenSharedResource接受一个泛型参数,该参数指定要返回的类型,因此它应该是

SlimDX.Direct3D10.Texture2D textureD3D10 = device10_1.OpenSharedResource<SlimDX.Direct3D10.Texture2D>(sharedResource.SharedHandle);

在HTML中,<>用于元素;因此,代码片段在人们的博客上过滤掉他们的通用参数并没有人意识到,这种情况并不少见。在这种情况下,您需要自己重新插入它们。