C# “奇怪”;无法从用法推断方法的类型参数。”;
我正在绞尽脑汁尝试实现一些代码,以便在SlimDX中共享D3D10和D3D11之间的纹理 此方法导致以下问题:C# “奇怪”;无法从用法推断方法的类型参数。”;,c#,text,slimdx,C#,Text,Slimdx,我正在绞尽脑汁尝试实现一些代码,以便在SlimDX中共享D3D10和D3D11之间的纹理 此方法导致以下问题: public void InitialiseTextureSharing() { // A DirectX10 Texture2D sharing the DirectX11 Texture2D sharedResource = new SlimDX.DXGI.Resource(textureD3D11); texture
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”对象
我当然没想到会有编译错误。我所依据的代码来自:
... 这都是关于用DX11在SlimDX中绘制文本的
我完全被难住了。我已经看过一些包含类似问题解决方案的帖子,但目前我无法将其应用到我的帖子中
任何指点都将不胜感激
更新:
SlimDX API文档中OpenSharedResource的签名:
。。。和资源:
根据文档,出现错误的原因是代码错误。OpenSharedResource接受一个泛型参数,该参数指定要返回的类型,因此它应该是
SlimDX.Direct3D10.Texture2D textureD3D10 = device10_1.OpenSharedResource<SlimDX.Direct3D10.Texture2D>(sharedResource.SharedHandle);
SlimDX.Direct3D10.Texture2D textureD3D10=device10\u 1.OpenSharedResource(sharedResource.SharedHandle);
在HTML中,
用于元素;正因为如此,代码片段在没有人意识到的情况下在人们的博客上过滤掉它们的泛型参数并不罕见。在这种情况下,您需要自己重新插入它们。您确定IntPtr类型的SharedHandle吗?如果您发布OpenSharedResource的签名和sharedResource.SharedHandle类型,这会有所帮助。